这正是我的问题所在。
但是通过更改业务输出类方法的结构,我的问题得到了解决。
当然,在这种方式中,您需要有数据输出和行数。
不要忘记与同一页布局相关的问题, 数据必须从数据库中提取。
我的类被设计来执行以下操作。
using System.Collections.Generic;
using System.Linq;
using Andish.CSS.Common.Enum;
using AutoMapper;
using system.linq.dynamic;
namespace Andish.CSS.Common.Result.Implementation
{
public static class PagingResult
{
public static PageResult<K> ToPageResult<T, K>(this IQueryable<T> queryable, int rowCount,
int pageNumber, string sortField, DynamicLinqSortFieldKind
dynamicLinqSortFieldKind)
{
var allQueryRow = queryable.ToList<T>().Count();
var skipLen = (pageNumber - 1) * rowCount;
string orderKind = "";
orderKind = dynamicLinqSortFieldKind == DynamicLinqSortFieldKind.Ascending ? " Asc" : " Desc";
PageResult<K> pageResult = new PageResult<K>
{
PageNumber = pageNumber,
RowCount = rowCount,
Result = Mapper.Map<IList<K>>(queryable.OrderBy(sortField + orderKind)
.Skip(skipLen).Take(rowCount).ToList<T>()),
ResultRowCount = allQueryRow,
PageCount = allQueryRow % rowCount == 0 ? allQueryRow / rowCount : (allQueryRow / rowCount) + 1
};
return pageResult;
}
}
}
create this enum
public enum DynamicLinqSortFieldKind
{
Ascending = 0,
Descending = 1
}
要使用这个扩展方法,按照以下方式操作,并且我从ExecutiveUnit类中得到了一个结果,我想将这个类映射到另一个类ExecutiveUnitModel。我使用automapper nuget。
var xresult = result.ToPageResult<ExecutiveUnit, ExecutiveUnitModel>(RowNumbers, pageNumber, "Code", DynamicLinqSortFieldKind.Ascending);