Esempio n. 1
0
        /// <summary>
        ///     更改实体类
        /// </summary>
        /// <param name="info">实体类</param>
        /// <param name="db">可传入事务的db</param>bu
        public bool Update(TInfo info, DbExecutor db = null)
        {
            // 默认不带条件,并且Info.ID有值时,则自动修改当前ID
            if (ExpWhere == null && info.ID != null)
            {
                Where(o => o.ID == info.ID);
            }
            var result = Data.Where(ExpWhere).Update(info, db);

            if (result)
            {
                var lst = ToList(db);
                if (ExpWhere != null)
                {
                    lst = lst.FindAll(ExpWhere.Compile().ToPredicate());
                }

                foreach (var item in lst)
                {
                    foreach (var kic in Map.ModelList.Where(o => o.Value.IsDbField))
                    {
                        var objValue = kic.Key.GetValue(info, null);
                        if (objValue == null || !kic.Key.CanWrite)
                        {
                            continue;
                        }
                        kic.Key.SetValue(item, objValue, null);
                    }
                }
            }
            return(result);
        }