2

我正在向我的 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 )

4

1 回答 1

0

问题是:CSLA 4.5 有一个错误,导致您的 UI 在保存命令后冻结。现在我使用 CSLA 4.1,它工作得很好。

于 2013-03-27T08:21:01.003 回答