도메인 서비스에서 IQueryable 결과를 필터링해야합니까? 예를 들어MVC - 도메인 서비스가 필터링을 담당하거나 저장소 계층을 수행합니까?
... 내 3 개 포털 (웹 사이트), 그것은, 내가 특정 저장소 메서드를 호출하고 결과를 돌려 주어 사용자의 유형에 따라
현재 저장소 레이어 같은 도메인 서비스 레이어에 액세스 : 내가즉 필터를 할 간단하고, 도메인 서비스에서 다음
IQueryable<Products> GetAllProducts();
Products GetAProduct(product id);
:
IQueryable<Products> GetAllProductsForCrazyUserNow(CrazyUser id);
Products GetAProductForCrazyUserNow(CrazyUser id,product id);
IQueryable<Products> GetProductsForNiceUserNow(NiceUser id);
Products GetProductsForNiceUserNow(NiceUser id,product id);
은 그냥 저장소 계층에서이 작업을 수행하는 가장 좋은 것입니다
var Niceman = IQueryable<Products> GetAllProducts().Where(u=> u.Name == "Nice");
참고 : Repository Layer 내에 CRUD가 포함 된 읽기 전용 세션 및 세션이 있으므로 응답 할 때 유의하시기 바랍니다.
두 번째 질문 : 도메인 서비스 계층에서 필터링을해야합니까? 이 바로 레이어는 엔티티 즉 Product.Price == 25.00을 수정할 수있는 유일한 레이어입니다. 이것은 저장소 계층에 위임되지 않습니다.
우리는 저장소 계층이 기본 데이터 집합의 지속성 및 검색을위한 것이라고 주장 할 수 있습니다. 그러면 그들은 도메인 서비스에서 정제되어야합니다. 만약 우리가 Stored Procs를 무효화한다면 ... LinqToSql을 사용할 때 처리 할 필요가 없기 때문에 기쁘다. – Haroon