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
据我所知,你的_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)
我假设你正在使用实体框架。这有帮助吗?