【问题标题】:Best way to attach row from datagrid to EF将行从数据网格附加到 EF 的最佳方法
【发布时间】:2010-06-17 13:44:24
【问题描述】:

使用 MVVM 和 EF...我有一个绑定到视图模型的数据网格(使用 ObservableCollection)。视图模型有一个简单地调用数据上下文的 SaveChanges 命令的保存命令。但是,当用户向数据网格添加新行时,新实体将被分离。有没有什么简单的方法可以在创建时自动附加它。目前,我必须在视图模型的保存命令中执行此操作,这似乎有点笨拙:

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

【问题讨论】:

  • 为什么这个保存代码不在你的模型而不是你的视图模型中?

标签: wpf entity-framework mvvm


【解决方案1】:

在这种情况下,解决方案应该是“观察”您的 ObservableCollection 是否有任何新添加,并在将新实体添加到集合后附加它们。

Matt Casto 是对的,您的 ViewModel 中不应该有 Save 方法,该方法应该在您的 Model 或 ModelRepository 中,具体取决于您用于数据访问层的模式。

【讨论】:

  • 不确定“观察”是什么意思?
  • 注册到 CollectionChanged 事件。每当集合中的项目数量发生变化时就会引发它。
猜你喜欢
  • 1970-01-01
  • 2018-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-18
  • 1970-01-01
  • 2020-08-01
  • 1970-01-01
相关资源
最近更新 更多