MVVM数据库Child_Update()未更新

本文关键字:更新 Update 数据库 Child MVVM | 更新日期: 2023-09-27 18:04:37

事情是这样的。使用我的模型引发Child_Update()方法。我知道这不是很好,但我现在正要离开。现在我给了我的业务类作为参数来改变已经给出的行。它做的一切都很好,没有任何错误消息,也没有null变量,但它没有改变数据库中的任何东西。

这里我使用selecteindex来选择正确的项目来更新

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());
    }
}

这是子update

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();
    }
}

thx for help

MVVM数据库Child_Update()未更新

据我所知,你的_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)

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