2015-09-11 35 views
0

我刚开始使用MVVM。关于这方面也有很多话题。 但我不能见树不见林...实体框架保存更改列表<>

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

我在我的ViewModel一个List<Klanten>。你应该可以编辑这个列表。当编辑列表时,我希望能够将更改保存到数据库。

我用MVVM之前,我会做这样的事情:

_entities.SaveChanges(); 

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

我发现了一些答案,他们检查列表中的每个对象与上下文,以检查是否有更改或添加。但我不喜欢这个解决方案,还有没有更好的方法?或者我应该坚持这个解决方案。

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

谢谢布莱希特

+0

问题是:谁应该做更改跟踪? EF上下文与否。在我们的项目中,EF没有做更改跟踪。所以我们必须在我们的服务中处理这个问题,并使用EF来加载和保存数据到数据库和从数据库中保存数据 – blindmeis

回答

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