实体框架保存更改列表<>

时间:2015-09-11 10:56:45

标签: c# wpf mvvm data-binding crud

我刚开始使用MVVM。关于这一点也有很多话题。 但我看不到树木的木头......

这是一个基本问题(初学者@ EF和MVVM)

我的ViewModel中有一个List<Klanten>。您应该能够编辑此列表。编辑列表时,我希望能够将更改保存到数据库中。

在我使用MVVM之前,我会做类似的事情:

_entities.SaveChanges();

但现在我的数据在列表中更改,而不是在上下文中自我更改。我想知道如何以适当的方式将列表的更改反映到数据库中。

我找到了一些答案,他们用上下文检查列表中的每个对象,以检查某些内容是否已更改或添加。但是我不喜欢那种解决方案不存在另一种更好的方法吗?或者我应该坚持这个解决方案。

随意发布关于它的博客(或其他内容),我想了解更多。

谢谢,布莱希特

2 个答案:

答案 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;
    }