我正在向我的 CSLA BusinessList 添加一个新项目。但我只能使用 0 主键添加它,因为我添加的项目始终为空。如果我尝试:“Item temp= new item{...}”这个项目不是列表的子项。我将首先发布我的添加功能,然后发布一些数据门户。
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 未处理(因为 temp 始终为 null )