示例#1
0
        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;
            }
        }
示例#2
0
        /// <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;
            }
        }
示例#3
0
        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;
            }
        }
示例#4
0
        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;
            }
        }