Example #1
0
 /// <summary>
 /// 查找指定主键的实体记录
 /// </summary>
 /// <param name="key"> 指定主键 </param>
 /// <returns> 符合编号的记录,不存在返回null </returns>
 public virtual TEntity GetByKey(object key)
 {
     // 参数有效性检查
     ArgumentValidationHelper.CheckForNullReference(key, "传入的对象key为空");
     // 执行查询
     return(EFContext.Set <TEntity>().Find(key));
 }
Example #2
0
        // 1、返回IQueryable<TEntity>使用延迟加载技术
        // 2、返回IEnumerable<TEntity>,需要把数据集加载到内存

        /// <summary>
        /// 检查实体是否存在
        /// </summary>
        /// <param name="predicate">查询条件表达式</param>
        /// <returns>是否存在</returns>
        public virtual bool CheckExists(Expression <Func <TEntity, bool> > predicate)
        {
            // 参数有效性检查
            ArgumentValidationHelper.CheckForNullReference(predicate, "传入的对象key为空");
            // 存在返回true,否则false
            return(EFContext.Set <TEntity>().Count(predicate) == 0 ? false :true);
        }
Example #3
0
 /// <summary>
 /// 批量插入实体记录集合
 /// </summary>
 /// <param name="entities"> 实体记录集合 </param>
 /// <param name="isSave"> 是否执行保存 </param>
 /// <returns> 操作影响的行数 </returns>
 public virtual int Insert(IEnumerable <TEntity> entities, bool isSave = true)
 {
     // 参数有效性检查
     ArgumentValidationHelper.CheckForNullReference(entities, "传入的对象t为空");
     // 对象加入仓储上下文(暂不提交数据库)
     EFContext.RegisterNew(entities);
     // 立即提交或暂缓执行
     return(isSave ? EFContext.Commit() : 0);
 }
Example #4
0
        /// <summary>
        /// 更新所有符合特定表达式的记录
        /// </summary>
        /// <param name="predicate"> 查询条件谓语表达式 </param>
        /// <param name="isSave"> 是否执行保存 </param>
        /// <returns> 操作影响的行数 </returns>
        public virtual int Update(Expression <Func <TEntity, bool> > predicate, bool isSave = true)
        {
            // 参数有效性检查
            ArgumentValidationHelper.CheckForNullReference(predicate, "传入的对象predicate为空");
            // 依据条件表达式查询实体记录
            List <TEntity> entities = EFContext.Set <TEntity>().Where(predicate).ToList();

            // 记录存在则立即执行,否则返回0
            return(entities.Count > 0 ? Update(entities, isSave) : 0);
        }
Example #5
0
 /// <summary>
 /// 更新实体记录
 /// </summary>
 /// <param name="entity"> 实体对象 </param>
 /// <param name="isSave"> 是否执行保存 </param>
 /// <returns> 操作影响的行数 </returns>
 public virtual int Update(TEntity entity, bool isSave = true)
 {
     // 参数有效性检查
     ArgumentValidationHelper.CheckForNullReference(entity, "传入的对象entity为空");
     // 对象加入仓储上下文(暂不提交数据库)
     EFContext.RegisterModified(entity);
     //TEntity entity0 = EFContext.
     // 立即提交或暂缓执行
     return(isSave ? EFContext.Commit() : 0);
 }
Example #6
0
        /// <summary>
        /// 删除指定编号的记录
        /// </summary>
        /// <param name="id"> 实体记录编号 </param>
        /// <param name="isSave"> 是否执行保存 </param>
        /// <returns> 操作影响的行数 </returns>
        public virtual int Delete(object id, bool isSave = true)
        {
            // 参数有效性检查
            ArgumentValidationHelper.CheckForNullReference(id, "传入的对象id为空");
            // 实体记录在数据库是否存在
            TEntity entity = EFContext.Set <TEntity>().Find(id);

            // 记录存在则立即执行,否则返回0
            return(entity != null?Delete(entity, isSave) : 0);
        }
Example #7
0
        /// <summary>
        /// 删除实体记录
        /// </summary>
        /// <param name="entity"> 实体对象 </param>
        /// <param name="isSave"> 是否执行保存 </param>
        /// <returns> 操作影响的行数 </returns>
        public virtual int Delete(TEntity entity, bool isSave = true)
        {
            // 参数有效性检查
            ArgumentValidationHelper.CheckForNullReference(entity, "传入的对象t为空");
            try
            {
                // 对象加入仓储上下文(暂不提交数据库)
                EFContext.RegisterDeleted(entity);
            }
            catch (InvalidOperationException)
            {
                Delete(entity.ID);
            }
            catch (Exception)
            {
                throw;
            }

            // 立即提交或暂缓执行
            return(isSave ? EFContext.Commit() : 0);
        }