/// <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); } }
/// <summary> /// 返回一个查询 /// </summary> /// <typeparam name="T"></typeparam> /// <returns></returns> public QuerySection <T> ToQuery <T>() where T : Entity { return(query.CreateQuery <T>()); }