关于EntityFramework4.x/5.0只更新某部分字段的问题
2012-08-30 16:28
369 查看
因为4.x/5.0的context都采用了继承DbContext,但DbContext不提供修改字段状态的相关操作方法,可是实现了IObjectContextAdapter接口,我们可以从这里拿到ObjectContext,这样一切都好办了.我们可以如下操作
其实设不设置State是Modified都没问题.因为上面已经把状态给同步了.
public int Update(E entity, string[] propertys) { int changeCount = 0; using(TransactionScope transaction = new TransactionScope (TransactionScopeOption.Required)) { using (YzOASysEntities context = new YzOASysEntities()) { context.Set<E>().Attach(entity); IObjectContextAdapter objectContextAdatper = context; ObjectContext objectContext = objectContextAdatper.ObjectContext; ObjectStateEntry ose = objectContext.ObjectStateManager.GetObjectStateEntry(entity); foreach (string property in propertys) { ose.SetModifiedProperty(property); } if (context.Entry<E>(entity).State == EntityState.Unchanged) context.Entry<E>(entity).State = EntityState.Modified; changeCount = context.SaveChanges(); if (changeCount > 0) transaction.Complete(); } } return changeCount; }
其实设不设置State是Modified都没问题.因为上面已经把状态给同步了.
相关文章推荐
- 关于Spring Data JPA更新部分字段的问题
- 关于表中某个字段的数据不能更新的问题
- hibernate 部分字段更新问题
- Mysql的XML字段部分结点更新问题
- 解决Hibernate 更新部分字段的问题
- MySql关于修改字段名/长度相关问题(不定时更新)
- EF Code First - 更新部分字段时 未更新字段的验证问题
- 一个关于Oracle更新语句引发的时间字段类型的问题
- 关于更新部分属性,Hibernate更新某些字段的几种update方法
- 关于win10周年版更新后无法正常使用vc6.0问题的解决方法
- 关于android 开发过程中遇到的问题,不定期更新
- 关于Centos下Clamv反病毒软件包更新问题
- 关于mybaties中的一些小问题(不定时更新)
- 记录一下关于IntelliJ IDEA 及部分使用问题
- sql语句问题 通过联立两个表更新其中一个表的字段
- ViewModel在MVC3中的应用:实现多字段表格的部分更新
- 关于wamp+eclipse for PHP环境的搭建以及其中部分问题的解决办法
- 关于nodejs express4.X框架不支持layout模板的问题解决
- 关于iOS9 更新后,微博,微信 语言变成英语的问题
- 关于viewpager动态删除fragment更新的问题