MVVM数据库Child_Update()未更新

时间:2013-03-19 15:38:11

标签: c# wpf database mvvm updates

好的,这是交易。使用我的模型来引发Child_Update()方法。我知道这不好,但我现在正在学习。现在我将Business类作为参数来更改已经给定的行。 它没有任何错误消息,并且没有空变量,但它没有改变数据库中的任何内容。

这里我使用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();

    }
}

请求帮助

1 个答案:

答案 0 :(得分:0)

据我所知,你的_data不是datacontext的一部分

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

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)

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