我刚开始使用MVVM。关于这一点也有很多话题。 但我看不到树木的木头......
这是一个基本问题(初学者@ EF和MVVM)
我的ViewModel中有一个List<Klanten>
。您应该能够编辑此列表。编辑列表时,我希望能够将更改保存到数据库中。
在我使用MVVM之前,我会做类似的事情:
_entities.SaveChanges();
但现在我的数据在列表中更改,而不是在上下文中自我更改。我想知道如何以适当的方式将列表的更改反映到数据库中。
我找到了一些答案,他们用上下文检查列表中的每个对象,以检查某些内容是否已更改或添加。但是我不喜欢那种解决方案不存在另一种更好的方法吗?或者我应该坚持这个解决方案。
随意发布关于它的博客(或其他内容),我想了解更多。
谢谢,布莱希特
答案 0 :(得分:1)
有人必须做更改跟踪吗?实体不知道任何变化,直到你告诉它有什么变化,所以你可以给它整个列表并让它添加/更新每一个,或者你可以自己做跟踪,就像那些“一些答案”所暗示的那样。真的没有神奇的方法可以做到这一点我害怕:(
答案 1 :(得分:0)
谢谢你们! 所以我猜没有魔术:)
我这样解决了这个问题:
DataEntities ctx = new DataEntities();
public List<Klant> Klanten
{
get { return ctx.Klanten.ToList(); }
}
public void AddKlant(Klant k)
{
ctx.Klanten.Add(k);
ctx.SaveChanges();
Refresh();
}
public void Refresh()
{
ViewSource.Source = Klanten;
}