2012-10-12 2 views
1

NHibernate에 익숙하며 탐험 중에 "지정된 메소드가 지원되지 않습니다."라는 다음 쿼리에 문제가 있습니다. 오류, 어떤 아이디어?NHibernate LINQ 질의 지정된 메소드가 지원되지 않음 오류

var merchantSite = session.Query<MerchantSite>().FirstOrDefault(x => x.Site.Id == SiteId); 
var customers = session.Query<Customer>().Where(x => x.Transaction.Any<Transaction>(y => merchantSite.Transaction.Any<Transaction>(c => c.Id == y.Id))).ToList(); 

MerchantSite와 Transaction에는 모두 Transaction 유형의 개체 목록이 있습니다.

비슷한 상황에 처한 사람이 있어야합니다. 경험을 공유해주세요.이 상황에서 우리는 무엇을해야합니까?

미리 감사드립니다.

답변

0

ToList 호출을 수행 할 때 nHibernate가 쿼리를 실행하는 데 필요한 SQL을 작성하고 있으며 기본적으로 단일 SQL 호출로 변환하는 데 문제가 있다고 말합니다.

+6

FirstOrDefault(x => x.Site != null && x.Site.Id == SiteId); 

작성하거나 사용하려고 할 수 있을까? –

0

x.Site가 null이면 "특정 메서드가 지원되지 않습니다."라는 메시지가 나타납니다. 당신은 그럼 어떻게해야합니까 C# 6

FirstOrDefault(x => x.Site?.Id == SiteId); 
관련 문제