2010-06-17 61 views
1

使用MVVM和EF ...我有一個數據網格綁定到視圖模型(使用ObservableCollection)。視圖模型有一個保存命令,它簡單地調用數據上下文的SaveChanges命令。但是,當用戶將新行添加到數據網格時,新實體將被分離。是否有任何簡單的方法可以在創建時自動附加它。目前,我在做這在我的視圖模型的保存命令,似乎有點笨重:將數據網格的行連接到EF的最佳方法

 foreach (var dataItem in _DataList) // where _DataList is the ObservableCollection 
     { 
      if (dataItem.EntityState == EntityState.Detached) 
      { 
       _DataContext.AddToTestTables(dataItem); 
      } 
     } 
     _DataContext.SaveChanges(); 
+0

爲什麼不把代碼保存在你的模型中而不是你的ViewModel中? – 2010-06-17 14:07:34

回答

0

在這種情況下,解決方案應是「守」你的ObservableCollection任何新的補充和附加新實體一旦添加到集合中。

And Matt Casto是對的,您的ViewModel中不應該有Save方法,它應該位於Model或ModelRepository中,具體取決於您用於數據訪問層的模式。

+0

不確定「觀察」是什麼意思? – AKoran 2010-06-17 17:00:59

+0

註冊到CollectionChanged事件。只要集合中的項目數量發生更改,就會引發此問題。 – decyclone 2010-06-17 19:00:09

相關問題