コード例 #1
0
        /// <summary>
        /// 数据表 分页
        /// </summary>
        /// <param name="pageNum">指定页数 索引从0开始</param>
        /// <param name="pageSize">指定每页多少项</param>
        ///<param name="outTotal">输出当前表的总项数</param>
        /// <param name="expression">条件 linq表达式 谓词</param>
        /// <param name="sortList">排序字段</param>
        /// <returns></returns>
        public List <TEntity> GetPageData(int pageNum, int pageSize, out long outTotal,
                                          Expression <Func <TEntity, bool> > expression = null, object sortList = null)
        {
            using (var conn = ConnectionFactory.CreateMainSiteConnection())
            {
                IDbTransaction  transaction    = conn.BeginTransaction(IsolationLevel.ReadUncommitted);
                int             commandTimeout = 1800;
                IPredicateGroup predicate      = DapperLinqBuilder <TEntity> .FromExpression(expression); //转换Linq表达式

                IList <ISort> sort     = SortConvert(sortList);                                           //转换排序接口
                var           entities = conn.GetPage <TEntity>(predicate, sort, pageNum, pageSize, transaction: conn.BeginTransaction(IsolationLevel.ReadUncommitted)).ToList();
                outTotal = conn.Count <TEntity>(predicate, transaction, commandTimeout);
                return(entities);
            }
        }
コード例 #2
0
ファイル: BaseRepository.cs プロジェクト: kissxic/Framework
        /// <summary>
        /// 获取数据表总项数
        /// </summary>
        /// <param name="expression">linq表达式 谓词</param>
        /// <returns></returns>
        public int GetCount(Expression <Func <TEntity, bool> > expression = null)
        {
            var conn = DbHandle.CreateConnectionAndOpen();

            try
            {
                var predicate = DapperLinqBuilder <TEntity> .FromExpression(expression);

                return(conn.Count <TEntity>(predicate));
            }
            finally
            {
                conn.CloseIfOpen();
            }
        }
コード例 #3
0
        /// <summary>
        /// 获取结果集第一条数据
        /// </summary>
        /// <param name="expression"></param>
        /// <param name="sortList"></param>
        /// <returns></returns>
        public TEntity GetFist(Expression <Func <TEntity, bool> > expression = null, object sortList = null)
        {
            using (var conn = ConnectionFactory.CreateMainSiteConnection())
            {
                var predicate = DapperLinqBuilder <TEntity> .FromExpression(expression);

                IList <ISort> sort = null;
                if (sortList != null)
                {
                    sort = SortConvert(sortList);//转换排序接口
                }
                var data = conn.GetList <TEntity>(predicate, sort);
                return(data.FirstOrDefault());
            }
        }
コード例 #4
0
ファイル: BaseRepository.cs プロジェクト: kissxic/Framework
        /// <summary>
        /// 获取结果集第一条数据
        /// </summary>
        /// <param name="expression"></param>
        /// <returns></returns>
        public TEntity GetFist(Expression <Func <TEntity, bool> > expression = null)
        {
            var predicate = DapperLinqBuilder <TEntity> .FromExpression(expression);

            var conn = DbHandle.CreateConnectionAndOpen();

            try
            {
                var data = conn.GetList <TEntity>(predicate);
                return(data.FirstOrDefault());
            }
            finally
            {
                conn.CloseIfOpen();
            }
        }
コード例 #5
0
        /// <summary>
        /// 获取数据表总项数
        /// </summary>
        /// <param name="expression">linq表达式 谓词</param>
        /// <returns></returns>
        public long GetCount(Expression <Func <TEntity, bool> > expression = null)
        {
            try
            {
                if (_Conn.State == ConnectionState.Closed)
                {
                    _Conn.Open();
                }
                var predicate = DapperLinqBuilder <TEntity> .FromExpression(expression);

                return(_Conn.Count <TEntity>(predicate));
            }
            finally
            {
                _Conn.Close();
            }
        }
コード例 #6
0
        /// <summary>
        /// 数据表 分页
        /// </summary>
        /// <param name="pager">页数信息</param>
        /// <param name="fields">要查询是字段对象</param>
        /// <param name="expression">条件 linq表达式 谓词</param>
        /// <param name="sortList">排序字段</param>
        /// <returns></returns>
        public List <TEntity> GetPageData(XPager pager, string[] fields, Expression <Func <TEntity, bool> > expression = null, object sortList = null)
        {
            using (var conn = ConnectionFactory.CreateMainSiteConnection())
            {
                IDbTransaction  transaction    = conn.BeginTransaction(IsolationLevel.ReadUncommitted);
                int             commandTimeout = 1800;
                IPredicateGroup predicate      = DapperLinqBuilder <TEntity> .FromExpression(expression); //转换Linq表达式

                IList <ISort> sort = null;
                if (sortList != null)
                {
                    sort = SortConvert(sortList);//转换排序接口
                }
                var entities = conn.GetPage <TEntity>(fields, predicate, sort, pager.PageIndex, pager.PageSize, transaction).ToList();
                pager.RecordCount = conn.Count <TEntity>(predicate, transaction, commandTimeout);
                return(entities);
            }
        }
コード例 #7
0
        /// <summary>
        /// 更新实体指定字段数据
        /// </summary>
        /// <param name="parameters"></param>
        /// <param name="expression"></param>
        /// <returns></returns>
        public bool Update(object parameters, Expression <Func <TEntity, bool> > expression)
        {
            try
            {
                if (_Conn.State == ConnectionState.Closed)
                {
                    _Conn.Open();
                }
                var predicate = DapperLinqBuilder <TEntity> .FromExpression(expression);

                var succ = _Conn.Update <TEntity>(parameters, predicate);
                return(succ);
            }
            finally
            {
                _Conn.Close();
            }
        }
コード例 #8
0
        /// <summary>
        /// 获取结果集第一条数据
        /// </summary>
        /// <param name="expression"></param>
        /// <param name="sortList"></param>
        /// <returns></returns>
        public TEntity GetFist(Expression <Func <TEntity, bool> > expression = null, object sortList = null)
        {
            try
            {
                if (_Conn.State == ConnectionState.Closed)
                {
                    _Conn.Open();
                }
                var predicate = DapperLinqBuilder <TEntity> .FromExpression(expression);

                //var sort = SortConvert(sortList);
                var data = _Conn.GetList <TEntity>(predicate);
                return(data.FirstOrDefault());
            }
            finally
            {
                _Conn.Close();
            }
        }
コード例 #9
0
ファイル: BaseRepository.cs プロジェクト: kissxic/Framework
        /// <summary>
        /// 数据表 分页
        /// </summary>
        /// <param name="pageNum">指定页数 索引从0开始</param>
        /// <param name="pageSize">指定每页多少项</param>
        ///<param name="outTotal">输出当前表的总项数</param>
        /// <param name="expression">条件 linq表达式 谓词</param>
        /// <param name="sortList">排序字段</param>
        /// <returns></returns>
        public IEnumerable <TEntity> GetPageData(int pageNum, int pageSize, out long outTotal,
                                                 Expression <Func <TEntity, bool> > expression = null, object sortList = null)
        {
            IPredicateGroup predicate = DapperLinqBuilder <TEntity> .FromExpression(expression); //转换Linq表达式

            IList <ISort> sort = SortConvert(sortList);                                          //转换排序接口
            var           conn = DbHandle.CreateConnectionAndOpen();
            var           tran = conn.BeginTransaction(IsolationLevel.ReadUncommitted);

            try
            {
                var entities = conn.GetPage <TEntity>(predicate, sort, pageNum, pageSize, transaction: conn.BeginTransaction(IsolationLevel.ReadUncommitted));
                outTotal = conn.Count <TEntity>(null);
                return(entities);
            }
            finally
            {
                conn.CloseIfOpen();
            }
        }
コード例 #10
0
        /// <summary>
        /// 数据表 分页
        /// </summary>
        /// <param name="pageNum">指定页数 索引从0开始</param>
        /// <param name="pageSize">指定每页多少项</param>
        ///<param name="outTotal">输出当前表的总项数</param>
        /// <param name="expression">条件 linq表达式 谓词</param>
        /// <param name="sortList">排序字段</param>
        /// <returns></returns>
        public IEnumerable <TEntity> GetPageData(int pageNum, int pageSize, out long outTotal,
                                                 Expression <Func <TEntity, bool> > expression = null, object sortList = null)
        {
            try
            {
                if (_Conn.State == ConnectionState.Closed)
                {
                    _Conn.Open();
                }
                IPredicateGroup predicate = DapperLinqBuilder <TEntity> .FromExpression(expression); //转换Linq表达式

                IList <ISort> sort     = SortConvert(sortList);                                      //转换排序接口
                var           entities = _Conn.GetPage <TEntity>(predicate, sort, pageNum, pageSize, transaction: _Conn.BeginTransaction(IsolationLevel.ReadUncommitted));
                outTotal = _Conn.Count <TEntity>(null);
                return(entities);
            }
            finally
            {
                _Conn.Close();
            }
        }
コード例 #11
0
ファイル: BaseRepository.cs プロジェクト: kissxic/Framework
        /// <summary>
        /// 数据表 分页
        /// </summary>
        /// <param name="pager">页数信息</param>
        /// <param name="expression">条件 linq表达式 谓词</param>
        /// <param name="sortList">排序字段</param>
        /// <returns></returns>
        public Page <TEntity> GetPageData(Page <TEntity> pager, Expression <Func <TEntity, bool> > expression = null, object sortList = null)
        {
            int             commandTimeout = 1800;
            IPredicateGroup predicate      = DapperLinqBuilder <TEntity> .FromExpression(expression); //转换Linq表达式

            IList <ISort> sort = SortConvert(sortList);                                               //转换排序接口
            var           conn = DbHandle.CreateConnectionAndOpen();
            var           tran = conn.BeginTransaction(IsolationLevel.ReadUncommitted);

            try
            {
                var entities = conn.GetPage <TEntity>(predicate, sort, pager.PageIndex, pager.PageSize, tran);
                var list     = entities.ToList();
                pager.TotalCount = conn.Count <TEntity>(predicate, tran, commandTimeout);
                return(pager);
            }
            finally
            {
                conn.CloseIfOpen();
            }
        }
コード例 #12
0
        /// <summary>
        /// 根据条件获取表数据
        /// </summary>
        /// <param name="expression">linq表达式</param>
        /// <returns></returns>
        public List <TEntity> GetList(Expression <Func <TEntity, bool> > expression, object sortList = null)
        {
            using (var conn = ConnectionFactory.CreateMainSiteConnection())
            {
                IList <ISort> sort = null;
                if (sortList != null)
                {
                    sort = SortConvert(sortList);//转换排序接口
                }
                if (expression == null)
                {
                    //允许脏读
                    return(conn.GetList <TEntity>(null, sort, transaction: conn.BeginTransaction(IsolationLevel.ReadUncommitted)).ToList());//如果条件为Null 就查询所有数据
                }
                else
                {
                    var predicate = DapperLinqBuilder <TEntity> .FromExpression(expression);

                    return(conn.GetList <TEntity>(predicate, sort, transaction: conn.BeginTransaction(IsolationLevel.ReadUncommitted)).ToList());
                }
            }
        }
コード例 #13
0
        /// <summary>
        /// 数据表 分页
        /// </summary>
        /// <param name="pager">页数信息</param>
        /// <param name="expression">条件 linq表达式 谓词</param>
        /// <param name="sortList">排序字段</param>
        /// <returns></returns>
        public IEnumerable <TEntity> GetPageData(XPager pager, Expression <Func <TEntity, bool> > expression = null, object sortList = null)
        {
            try
            {
                if (_Conn.State == ConnectionState.Closed)
                {
                    _Conn.Open();
                }
                IDbTransaction  transaction    = _Conn.BeginTransaction(IsolationLevel.ReadUncommitted);
                int             commandTimeout = 1800;
                IPredicateGroup predicate      = DapperLinqBuilder <TEntity> .FromExpression(expression); //转换Linq表达式

                IList <ISort> sort     = SortConvert(sortList);                                           //转换排序接口
                var           entities = _Conn.GetPage <TEntity>(predicate, sort, pager.PageIndex, pager.PageSize, transaction);
                var           list     = entities.ToList();
                pager.RecordCount = _Conn.Count <TEntity>(predicate, transaction, commandTimeout);
                return(entities);
            }
            finally
            {
                _Conn.Close();
            }
        }
コード例 #14
0
ファイル: BaseRepository.cs プロジェクト: kissxic/Framework
        /// <summary>
        /// 根据条件获取表数据
        /// </summary>
        /// <param name="expression">linq表达式</param>
        /// <returns></returns>
        public IEnumerable <TEntity> GetList(Expression <Func <TEntity, bool> > expression, object sortList = null)
        {
            IList <ISort> sort = SortConvert(sortList);//转换排序接口
            var           conn = DbHandle.CreateConnectionAndOpen();

            try
            {
                if (expression == null)
                {
                    //允许脏读
                    return(conn.GetList <TEntity>(null, sort, transaction: conn.BeginTransaction(IsolationLevel.ReadUncommitted)));//如果条件为Null 就查询所有数据
                }
                else
                {
                    var predicate = DapperLinqBuilder <TEntity> .FromExpression(expression);

                    return(conn.GetList <TEntity>(predicate, sort, transaction: conn.BeginTransaction(IsolationLevel.ReadUncommitted)));
                }
            }
            finally
            {
                conn.CloseIfOpen();
            }
        }