EF扩展 更新指定字段
2017-09-14 12:51
447 查看
using System.Data.Entity.Infrastructure; using System.Threading.Tasks; /// <summary> /// EF扩展 /// </summary> public static class EFExtensions { /// <summary> /// 更新实体根据字段 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="db">数据库上下文</param> /// <param name="entity">实体</param> /// <param name="fields">更新的字段列表</param> public static int UpdateEntityFields<T>(this ApplicationDbContext db, T entity, IList<string> fields) where T : class { if (entity == null || fields == null || fields.Count == 0) { return 0; } db.Set<T>().Attach(entity); var SetEntry = ((IObjectContextAdapter)db).ObjectContext. ObjectStateManager.GetObjectStateEntry(entity); foreach (var item in fields) { SetEntry.SetModifiedProperty(item); } return db.SaveChanges(); } /// <summary> /// 异步更新实体根据字段 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="db">数据库上下文</param> /// <param name="entity">实体</param> /// <param name="fields">更新字段列表</param> /// <returns>受影响的行数</returns> public static async Task<int> UpdateEntityFieldsAsync<T>(this ApplicationDbContext db, T entity, IList<string> fields) where T : class { if (entity == null || fields == null || fields.Count == 0) { return 0; } db.Set<T>().Attach(entity); var SetEntry = ((IObjectContextAdapter)db).ObjectContext. ObjectStateManager.GetObjectStateEntry(entity); foreach (var item in fields) { SetEntry.SetModifiedProperty(item); } int result = await db.SaveChangesAsync(); return result; } }
相关文章推荐
- EF 更新指定的字段
- EF中更新指定字段
- 开发笔记:基于EntityFramework.Extended用EF实现指定字段的更新
- EF指定更新字段,强类型,有提示
- EF更新指定的字段
- EF更新指定字段...
- EF调用存储过程查询表中的部分字段,报数据读取器与指定的“AdventureWorksDWModel.Student”不兼容。某个类型为“Age”的成员在同名的数据读取器中没有对应的列。
- mysql将一个表中的字段值更新到另一个表中指定字段中
- EF只更新变化的字段
- EF 更新部分字段写法
- EF 只更新部分字段
- EF部分字段更新,忽略为null字段
- mysql指定将某个字段更新到另一个表中
- SQL两表匹配,将A表的指定字段所有内容根据条件更新B表指定字段的所有内容
- Entity Framework 同一个上下文中,如何进行对同一个实体进行指定字段更新
- solr原子更新-即指定更新某个字段的值
- Solr局部或指定字段更新之set用法
- Hibernate update方法,只更新指定字段,已解决
- 【EF】数据表全部字段更新与部分字段更新
- Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)