Example #1
0
        /// <summary>
        /// 新增(未提交保存)
        /// 作者:曾璐
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public virtual XuHos.DAL.EF.DBEntities PreInsert(XuHos.DAL.EF.DBEntities db, params TEntity[] model)
        {
            if (_PK.Count <= 0)
            {
                throw new Exception("没有设置主键");
            }

            if (_PK.Count > 1)
            {
                throw new Exception("不支持复合主键");
            }

            Type type = typeof(TEntity);
            var  prop = type.GetProperty(_PK[0]);


            for (int i = 0; i < model.Length; i++)
            {
                string ID = prop.GetValue(model[i], null) as string;

                //设置主键
                if (String.IsNullOrWhiteSpace(ID))
                {
                    ID = Guid.NewGuid().ToString("N");
                    prop.SetValue(model[i], ID);
                }
                db.Set <TEntity>().Add(model[i]);
            }
            return(db);
        }
Example #2
0
        /// <summary>
        /// 更新(未提交保存)
        /// 作者:曾璐
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public virtual XuHos.DAL.EF.DBEntities PreUpdate(XuHos.DAL.EF.DBEntities db, TEntity model)
        {
            //if (db.Entry<TEntity>(model).State == EntityState.Detached)
            //{
            //    db.Set<TEntity>().Attach(model);
            //}
            var entry = db.Entry <TEntity>(model);

            if (entry.State != System.Data.Entity.EntityState.Modified)
            {
                entry.State = System.Data.Entity.EntityState.Modified;
            }
            return(db);
        }