Пример #1
0
 //修改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
0
 //修改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;
     }
 }