【问题标题】:Entity Framework 6 Updating a record manually实体框架 6 手动更新记录
【发布时间】:2017-08-07 00:43:44
【问题描述】:

我正在使用带有 WPF 的 EF 6。由于我必须处理大量数据集,因此我必须在查询中使用AsNoTracking()。因此,更新任何条目现在是 ViewModel 的责任。我正在使用repository pattern,我正在考虑在generic repository 中实现一个方法,如下所示:

virtual public void Update(T updatedentity)
{
    _ctx.Set<T>().Attach(updatedentity);
    _ctx.Entry(updatedentity).State = EntityState.Modified;
}

这是个好主意吗?这种方法的优点和缺点是什么?最后,是否会对性能产生重大影响?这里需要注意一点,我的大多数实体最多有 15-20 个属性。

【问题讨论】:

    标签: c# entity-framework crud


    【解决方案1】:

    是的,您可以/应该附加数据库中已经存在的实体,然后将其状态设置为 Modified 将强制更新所有 T 实体属性。

    你可以在这里阅读 Attach 方法的一个很好的解释:Entity Framework 4 - AddObject vs Attach 另请阅读 EntityState.Modified 的可能影响@Gert 答案:Entity Framework - Why explicitly set entity state to modified?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-31
      • 1970-01-01
      • 1970-01-01
      • 2018-04-19
      相关资源
      最近更新 更多