繁体   English   中英

实体框架6手动更新记录

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM