Linq2를 사용할 때 저장소가 IQueryable을 반환하도록하는 것이 더 좋습니다.Linq2Nibernate 및 IQueryable을 사용하는 인터페이스 디자인
Linq를 사용하여 Nibernate를 사용하면 .First() 또는 Single() 등의 메소드를 호출 할 때까지 쿼리가 "실행되지 않습니다. 그래서 모든 인터페이스에서 IQueryable을 반환하는 것이 가장 좋지 않으므로 실행 전에 표현식 트리를 조작 할 수 있습니다.
내 리포지토리는 서비스에 의해 호출되며 IServicie에서 상속됩니다.
편집 :
우선은 정말 모든 해답을 주셔서 감사합니다. 그러나 나는 그 질문에 약간을 더하고 싶다. 나는이 디자인이다. 나는 시험 주위의 예약을 완전히 이해하지 못한다. 프로세스가 모든 포인트 IE에서 모든 필터 포인트에서 테스트되는 한 실제로 차이점은별로 없습니다.
또한 :
는 저장소가 IQuerrable을 반환하지 않는 경우 Linq2Nibernate 사용을위한 어떤 지점이 있습니까?
격리와 관련하여로드되지 않은 호출자에게 여전히 액세스하고 있지 않습니까? – eglasius
나는 당신의 말을 정말로 고맙게 생각하지만 실제로 Linq2Nibernate를 완벽하게 사용하지는 않습니까? "파이프와 필터"형식의 패턴을 적용 할 수 없다면 실제로 사용하는 데 어떤 이점도 보이지 않습니다. PRE 데이터베이스 가져 오기 –
@Ted 당신은 아주 비슷한 방식으로 작동 할 수있는 사양 패턴을 사용합니다 ... 기본적으로 (메서드를 호출 한 후 적용하는 것과는 반대로) – eglasius