2

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 であるため)

4

1 に答える 1

0

問題は、CSLA 4.5 にバグがあり、保存コマンドの後で UI がフリーズすることでした。現在、CSLA 4.1 を使用していますが、問題なく動作します。

于 2013-03-27T08:21:01.003 に答える