CSLA BusinessList に新しい項目を追加しています。しかし、追加する項目は常に null であるため、0 の主キーでしか追加できません。そして、私が試してみると: "Item temp= new item{...}" は、リストの子ではないこのアイテムです。Add 関数を最初に投稿し、次にいくつかのデータポータルを投稿します。
public void ExecuteNew(object obj)
{
if (Model != null)
{
Temp = Model.AddNew();
//Temp.FarbauswahlNr = 123;
//Temp.Kurztext = this.Kurztext;
//Temp.Ressource = this.Ressource;
//Temp.Vari1 = this.Vari1;
Model = Model.Save();
}
}
ここで、Business クラスと BusinessList クラスからのいくつかの DataPortals
protected override void DataPortal_Update()
{
using (var ctx = Csla.Data.ObjectContextManager<Datenbank.TestDBEntities>.GetManager(Business.EntitiesDatabase.Name))
{
Child_Update();
}
}
protected override void Child_Create()
{
base.DataPortal_Create();
BusinessRules.CheckRules();
}
private void Child_Insert()
{
using (var ctx = Csla.Data.ObjectContextManager<TestDBEntities>.GetManager(EntitiesDatabase.Name))
{
try
{
var data = new Datenbank.Farbe();
data.Kurztext = ReadProperty<string>(KurztextProperty);
data.Ressource = ReadProperty<string>(RessourceProperty);
data.Var1 = ReadProperty<bool>(Vari1Property);
data.Vari2 = ReadProperty<string>(Vari2Property);
ctx.ObjectContext.Farben.AddObject(data);
ctx.ObjectContext.SaveChanges();
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
}
}
考えられるエラー : NullReferebceException は unhadeld でした (temp は常に null であるため)