我正在使用带有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个属性。
答案 0 :(得分:0)
是的,您可以/应该附加数据库中已存在的实体,然后将其状态设置为Modified将强制更新所有T实体属性。
您可以在此处阅读有关Attach方法的详细说明:Entity Framework 4 - AddObject vs Attach 另请阅读EntityState.Modified @Mert answer:Entity Framework - Why explicitly set entity state to modified?
的可能影响