2015-09-11 70 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; 
    }