//修改2 按需修改 public bool UpdateEntity(Expression <Func <T, T> > propertyExpression, bool isSave = false) { try { var memberInitExpression = propertyExpression.Body as MemberInitExpression; var entity = PropertyUtils.CreateEntity(propertyExpression); DbEntityEntry <T> entry = db.Entry(entity); entry.State = EntityState.Unchanged; if (memberInitExpression != null) { foreach (var memberInfo in memberInitExpression.Bindings) { string propertyName = memberInfo.Member.Name; entry.Property(propertyName).IsModified = true; } } db.Configuration.ValidateOnSaveEnabled = false; if (isSave) { return(db.SaveChanges() > 0); } return(false); } catch (Exception ex) { throw new Exception(ex.Message); } finally { db.Configuration.AutoDetectChangesEnabled = true; } }
//修改2 按需修改 public static void UpdateEntity <TEntity>(this DbContext db, Expression <Func <TEntity, TEntity> > propertyExpression) where TEntity : class, new() { try { var memberInitExpression = propertyExpression.Body as MemberInitExpression; var entity = PropertyUtils.CreateEntity(propertyExpression); DbEntityEntry <TEntity> entry = db.Entry(entity); entry.State = EntityState.Unchanged; if (memberInitExpression != null) { foreach (var memberInfo in memberInitExpression.Bindings) { string propertyName = memberInfo.Member.Name; entry.Property(propertyName).IsModified = true; } } db.Configuration.ValidateOnSaveEnabled = false; } catch (Exception ex) { throw new Exception(ex.Message); } finally { db.Configuration.AutoDetectChangesEnabled = true; } }