public virtual void SaveOrUpdate(T entity) { //if (entity.ID == 0) if (IsAddEntity(entity)) { Insert(entity); } else { //var oldEnt = GetEntity(entity.ID); var oldEnt = GetOldEntity(entity); if (oldEnt == null) { throw new JsMiracleException( string.Format("对象({0})不存在无法修改 id:{1}", typeof(T).Name, GetKeyValue(entity))); } ModuleMemberCopy.SameValueCopier(entity, oldEnt); //DbContext.Entry(entity).State = EntityState.Modified; if (DbContext.Entry(oldEnt).State == EntityState.Modified) { DbContext.SaveChanges(); } } }
protected virtual IList <T> GetPageQuery(IQueryable <T> query) { // 不使用成员copy (快) if (!UserCopyMemberProperty) { return(query.ToList()); } // 使用成员copy (反射,慢, 去除集合属性,防止外键序列化显示时的列循环) List <T> lx = new List <T>(); foreach (var data in query) { T ent = new T(); ModuleMemberCopy.SameValueCopier(data, ent, false); lx.Add(ent); } return(lx); }