コード例 #1
0
ファイル: DbProvider.cs プロジェクト: windygu/MySoft.Data
        /// <summary>
        /// 创建分页查询
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="query"></param>
        /// <param name="itemCount"></param>
        /// <param name="skipCount"></param>
        /// <returns></returns>
        protected internal virtual QuerySection <T> CreatePageQuery <T>(QuerySection <T> query, int itemCount, int skipCount)
            where T : Entity
        {
            if (skipCount == 0)
            {
                ((IPaging)query).Prefix("top " + itemCount);
                return(query);
            }
            else
            {
                ((IPaging)query).Prefix("top " + itemCount);

                Field pagingField = query.PagingField;

                if ((IField)pagingField == null)
                {
                    throw new MySoftException("SqlServer2000或Access请使用SetPagingField设定分页主键!");
                }

                QuerySection <T> jquery = query.CreateQuery <T>();
                ((IPaging)jquery).Prefix("top " + skipCount);
                jquery.Select(pagingField);

                //如果是联合查询,则需要符值整个QueryString
                if (query.UnionQuery)
                {
                    jquery.QueryString = query.QueryString;
                }

                query.PageWhere = !pagingField.In(jquery);

                return(query);
            }
        }
コード例 #2
0
 /// <summary>
 /// 返回一个查询
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <returns></returns>
 public QuerySection <T> ToQuery <T>()
     where T : Entity
 {
     return(query.CreateQuery <T>());
 }