0
最初は、自分のコントローラーからWebサービスの関数を呼び出し、次にその結果をページングして、自分のビューに10個の項目しか表示しませんでした。メッセージWCF関数を呼び出すときに '基本接続が閉じられました'
コントローラー:
public ActionResult Index(int? page)
{
var companies = _requestServiceClient.GetCompanies();
int currentPageIndex = page.HasValue ? page.Value - 1 : 0;
var companiesListPaged = companies.ToPagedList(currentPageIndex, defaultPageSize);
return View(companiesListPaged);
}
はサービス:
public IEnumerable<Company> GetCompanies()
{
using (var unitOfWork = UnitOfWorkFactory.Create())
{
var companyRepository = unitOfWork.Create<Company>();
return companyRepository.GetAll().MyInclude(x => x.City).ToList();
}
}
すべてのデータが私のサービスから取得した後そう改ページが行われていた私はこのように進みました。それは動作しますが、多くのデータが非常に効率的ではありません。
コントローラー:
[Authorize]
public ActionResult Index(int? page)
{
int currentPageIndex = page.HasValue ? page.Value - 1 : 0;
var companies = _requestServiceClient.GetCompaniesToPagedList(currentPageIndex, defaultPageSize);
return View(companies);
}
サービス:
public IPagedList<Company> GetCompaniesToPagedList(int PageIndex, int PageSize)
{
using (var unitOfWork = UnitOfWorkFactory.Create())
{
var companyRepository = unitOfWork.Create<Company>();
var companies = companyRepository.GetAll().MyInclude(x => x.City).ToList();
return companies.ToPagedList(PageIndex, PageSize);
}
}
それはコンパイルが、実行時に、私はエラーを得た:
私はこのようなサービスに直接改ページの仕事をするために私のコードを変更しました基になる接続が閉じられました:サーバーが接続を維持すると予想されていた接続が閉じられました。
なぜ私のコードでこの変更は私にこのエラーを与えるのですか?
私は他に何も変わっていません。
ありがとうございました。
UPDATE
そして、ここではIPagedList
public interface IPagedList<T> : IList<T>
{
int PageCount { get; }
int TotalItemCount { get; }
int PageIndex { get; }
int PageNumber { get; }
int PageSize { get; }
bool HasPreviousPage { get; }
bool HasNextPage { get; }
bool IsFirstPage { get; }
bool IsLastPage { get; }
}
そしてToPagedList
public static IPagedList<T> ToPagedList<T>(this IEnumerable<T> source, int pageIndex, int pageSize, int? totalCount = null)
{
return new PagedList<T>(source, pageIndex, pageSize, totalCount);
}
私は10アイテムしか返しません>>私はそのような問題はありません。とにかくありがとう。問題は私のページネーションはシリアライズ可能ではありませんが、調整する方法はわかりません。とにかくありがとう。 – Bronzato