[英]Updating a record using Entity Framework context without manually setting properties
[英]Entity Framework 6 Updating a record manually
我正在使用EF 6和WPF。 由于我必须处理大量的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个属性。
是的,您可以/应该附加数据库中已存在的实体,然后将其状态设置为Modified将强制更新所有T实体属性。
你可以在这里阅读Attach方法的一个很好的解释: 实体框架4 - AddObject vs Attach请同时阅读EntityState.Modified的可能影响@Gert答案: 实体框架 - 为什么要明确地将实体状态设置为修改?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.