0

好的,这是交易。使用我的模型来提高 Child_Update() 方法。我知道这不好,但我现在只是在学习。现在我将我的业务类作为参数来更改已经给定的行。它做的一切都很好,没有任何错误消息,也没有空变量,但它没有改变数据库中的任何东西。

在这里,我使用 selectedIndex 来选择要更新的正确项目

public void ExecuteAngestellte(object obj)
{
    try
    {
       _selectedIndex.Child_Update(new Farbe { FarbauswahlNr = SelectedIndex.FarbauswahlNr, Kurztext = SelectedIndex.Kurztext, Ressource = SelectedIndex.Ressource, Vari1 = SelectedIndex.Vari1, Vari2 = SelectedIndex.Vari2 });

    }
    catch (Exception e)
    {
         MessageBox.Show(e.ToString());
    }
}

这是孩子的更新

public void Child_Update(Farbe data)
{
    using (var ctx =Csla.Data.ObjectContextManager<TestDBEntities>.GetManager(EntitiesDatabase.Name))
    {
        var objectStateManager = ctx.ObjectContext.ObjectStateManager;
        var _data = new Datenbank.Farbe();

        _data.FarbauswahlNr = data.FarbauswahlNr;
        _data.Kurztext = data.Kurztext;
        _data.Ressource = data.Ressource;
        _data.Var1 = data.Vari1;
        _data.Vari2 = data.Vari2;

        ctx.ObjectContext.SaveChanges();

    }
}

谢谢帮助

4

1 回答 1

0

据我所知,您的 _data 不是数据上下文的一部分

我不确定这些变量的含义,所以这里是一个简单的更新,我用于实体框架的单个记录

public void UpdateTable(int idRecord, YourContext Context)
{ 
    MyRecord = Context.MyTable.Find(idRecord);
    myRecord.Column = "New Value";
    Context.SaveChanges();
 }

所以我认为你需要这样做:

 var MyData = ctx.ObjectContext.TableName.Find(id)

我假设您正在使用实体框架。这有帮助吗?

于 2013-03-19T17:46:33.157 回答