将新项添加到CSLA EF4模式

时间:2013-03-26 08:19:00

标签: c# wpf database mvvm entity-framework-4

我正在为我的CSLA BusinessList添加一个新项目。但是我只能用0主键添加它,因为我添加的项目总是为空。如果我尝试:“Item temp = new item {...}”这个项目不是列表的子项。 我将首先发布我的添加功能,然后发布一些dataportals。

    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)

1 个答案:

答案 0 :(得分:0)

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