实体框架6手动更新记录

时间:2017-03-16 01:55:20

标签: c# entity-framework crud

我正在使用带有WPF的EF 6。由于我必须处理大量的DataSet,因此我必须使用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个属性。

1 个答案:

答案 0 :(得分:0)

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

您可以在此处阅读有关Attach方法的详细说明:Entity Framework 4 - AddObject vs Attach 另请阅读EntityState.Modified @Mert answer:Entity Framework - Why explicitly set entity state to modified?

的可能影响