- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 asp.net MVC 5 构建一个应用程序,并且有一个使用 IPagedList.MVC 版本 4.5.0.0、AutoMapper 和 Entity Framework 的网格。
在项目中,我有一个 BusinessLayer,这是我的 Action 与之交谈的对象,因为我不希望 Action 方法直接与 Entity Framework 交谈。所以我的BLL有以下方法:
public IPagedList<ActiveContractViewModel> GetAllContracts(string regNumFilter, int page)
{
var lstcontractViewModel = new List<ActiveContractViewModel>();
using (ActiveContractRepository activeContractRepos = new ActiveContractRepository(new UnitOfWork()))
{
var activeContractList = activeContractRepos.All.OrderByDescending(x => x.Id).Include(c => c.Contractor);
if (regNumFilter.Trim().Length > 0)
{
activeContractList = activeContractRepos.All.Where(x => x.RegistrationNumber.Contains(regNumFilter)).OrderByDescending(x => x.Id).Include(c => c.Contractor);
}
foreach (var activeContract in activeContractList)
{
Mapper.CreateMap<DomainClasses.ActiveContract, ActiveContractViewModel>().ForMember(dest => dest.ContractorModel, opts => opts.MapFrom(src => new ContractorViewModel
{
Id = src.Contractor.Id,
Name = src.Contractor.Name,
ContactPerson = src.Contractor.ContactPerson,
Phone = src.Contractor.Phone,
Fax = src.Contractor.Fax,
Address = src.Contractor.Address,
VendorNumber = src.Contractor.VendorNumber,
FederalTaxId = src.Contractor.FederalTaxId
}
));
Mapper.AssertConfigurationIsValid();
lstcontractViewModel.Add(Mapper.Map<ActiveContractViewModel>(activeContract));
}
}
return lstcontractViewModel.ToPagedList(page, 20);
}
我正在将我的 ActiveContract 类(来自 Entity Framework)映射到一个模型(ActiveContractVieWModel),它工作正常,返回数据并且分页工作。但我在调试时注意到 foreach 循环也会遍历所有记录,如果我有 2500 条记录,它会遍历所有记录,构建一个大列表,然后在 ToPageList 方法上使用。
有没有更好的方法来解决这个问题,这样我就可以构建我的模型并只用我需要的 20 条记录填充它并让 IPagedList 知道总大小?
最佳答案
我最终进一步研究了 IPageList.MVC,看到作者发布了关于此的信息: https://github.com/troygoode/pagedlist#example-2-manual-paging
“在某些情况下,您无法访问能够创建 IQueryable 的内容,例如在使用 .Net 的内置 MembershipProvider 的 GetAllUsers 方法时。此方法提供分页,但不是通过 IQueryable。幸运的是,PagedList 仍然支持您(注意使用 StaticPagedList):"
我转而使用 StaticPagedList,它现在工作得更好了,只需抓取我想要的记录数,分页也能正常工作。
关于c# - IPagedList.MVC,设置总大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23253172/
我正在使用 Page List ASP MVC 插件将分页添加到我的 View ,因为我的 View 模型包含一个有时会有点失控的列表。但是,我遇到了一些问题。 View 模型包含一个 List另一个
在我的 Controller 中: int[] numbers = {1, 2, 3}; ViewBag.List = numbers; 然后在 View 中我这样做: @Html.PagedList
我正在使用 asp.net MVC 5 构建一个应用程序,并且有一个使用 IPagedList.MVC 版本 4.5.0.0、AutoMapper 和 Entity Framework 的网格。 在项
所以.. 我有一个类有一个 List。 我像下面的代码一样将它传递给 View : [HttpGet] [Authorize(Roles="user")] [CustomChecker] public
我发现在使用 NHibernate 并在一个对象上创建一对多关系时,当 many 变得非常大时,它会急剧减慢。现在我的存储库中确实有用于收集该类型的分页 IList 的方法,但是我更希望在模型上也有这
我有 IPagedList 接口(interface),它实现了这样的 IList public interface IPagedList : IList { int PageCount {
我在加载部分 View 的 ajax 选项卡式 Pane 中有一个分页列表。我在 IPagedlist 中使用了内置的 ajax,但部分 View 没有被正确替换,我做错了什么 我的 Ajax 调用/
这是完整的错误 Error CS1929 'IHtmlHelper>' does not contain a definition for 'PagedListPager' and the best
我使用 List 而不是 IEnumerable 模型 我的 Controller public ActionResult Index(int? page) {
我是一名优秀的程序员,十分优秀!