2010-06-17 64 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

相关问题