public virtual void Update(T entity, params Expression <Func <T, object> >[] changedProperties) { DbSet.Attach(entity); if (changedProperties != null && changedProperties.Any()) { foreach (var property in changedProperties) { var expression = (MemberExpression)property.Body; var name = expression.Member.Name; _baseDbContext.Entry(entity).Property(property).IsModified = true; } } else { _baseDbContext.Entry(entity).State = EntityState.Modified; } }
/// <summary> /// Update and <paramref name="entity"/> with specific properties /// </summary> /// <param name="entity"></param> /// <param name="changedProes"></param> public virtual void Update(TEntity entity, params string[] changedProes) { if (changedProes == null) { changedProes = new string[] { }; } DbSet.Attach(entity); if (changedProes.Any()) { //Only change some properties foreach (string property in changedProes) { _dbContext.Entry(entity).Property(property).IsModified = true; } } else { _dbContext.Entry(entity).State = EntityState.Modified; } }
public virtual void Update(TEntity entity, params Expression <Func <TEntity, object> >[] changedProperties) { entity.LastUpdatedTime = entity.LastUpdatedTime == default(DateTimeOffset) ? DateTimeOffset.UtcNow : entity.LastUpdatedTime; DbSet.Attach(entity); if (changedProperties != null && changedProperties.Any()) { foreach (var property in changedProperties) { var expression = (MemberExpression)property.Body; var name = expression.Member.Name; _baseDbContext.Entry(entity).Property(name).IsModified = true; } } else { _baseDbContext.Entry(entity).State = EntityState.Modified; } }
public virtual void Update(T entity, params Expression <Func <T, object> >[] changedProperties) { TryAttach(entity); changedProperties = changedProperties?.Distinct().ToArray(); if (changedProperties?.Any() == true) { foreach (var property in changedProperties) { DbContext.Entry(entity).Property(property).IsModified = true; } } else { DbContext.Entry(entity).State = EntityState.Modified; } }