فرض کنید لایه سرویس هم به این شکل باشد :
public IQueryable<Branch> GetAlls() { return _branchRepository.GetAllwithCorporate(); } public IQueryable<Branch> GetAllWithAll() { var CorporateID = _serverApplicationSettingRepository.GetAll().FirstOrDefault().CorporateID; return _branchRepository.GetAllWithAll().Where(x => x.CorporateID == CorporateID); }
مساله ای که هست اینه که ما نمیخواهیم برای بیرون کشیدن یک رکورد در Controller، در لایه سرویس یا مخزن کل رکوردها رو بیرون بکشیم.
اگر قرار باشد در لایه سرویس از نوع IList یا IEnumberable برای خروجی استفاده کنیم، یعنی در واقع کل رکوردها رو واکشی کردیم که شاید فقط در Controller نیاز به یک رکورد باشد. یعنی بستن کوئری در لایه سرویس یا مخزن، ممکنه باعث اجبار در واکشی همه رکوردها در لایههای پایین، حتی برای حالتی که ما فقط به یک رکورد نیاز داریم بشه.
پس راه حل چیه؟