标签:
public int UpData(T model, params string[] proNames) { //4.1将 对象 添加到 EF中 DbEntityEntry entry = db.Entry<T>(model); var set = db.Set<T>().Find(DbContextExtensions.GetEntityKey(db, model)); if (set != null) { entry.State = EntityState.Detached; //这个是在同一个上下文能修改的关键 } //4.2先设置 对象的包装 状态为 Unchanged entry.State = EntityState.Unchanged; //4.3循环 被修改的属性名 数组 foreach (string proName in proNames) { //4.4将每个 被修改的属性的状态 设置为已修改状态;后面生成update语句时,就只为已修改的属性 更新 entry.Property(proName).IsModified = true; } //4.4一次性 生成sql语句到数据库执行 return db.SaveChanges(); }
public static class DbContextExtensions { public static int GetEntityKey(this DbContext context, object entity) { var adapter = context as IObjectContextAdapter; var entry = adapter.ObjectContext.ObjectStateManager.GetObjectStateEntry(entity); string id= entry.EntityKey.EntityKeyValues[0].Value.ToString(); return int.Parse(id); } }
标签:
原文地址:http://www.cnblogs.com/lkd3063601/p/5032870.html