나는 다음과 같은 시나리오를 가지고있다 : 고객은행에 은행 계좌를 가질 수있는 고객. 이 관계는합니다 (지도 태그를 사용하여 매핑)을 고객 클래스에 IDictionary로 설명되어NHibernate를 사용하여 키 - 값 컬렉션을 통해 쿼리하는 방법은 무엇입니까?
이public class Customer
{
public virtual IDictionary<Bank, string> Banks
{
get { return _Banks; }
set { _Banks = value; }
}
private IDictionary<Bank, string> _Banks = new Dictionary<Bank, string>();
}
IDictionary의 각 키는 고객이 계정이있는 은행을 나타냅니다, 그리고 문자열 값은이 질문과 관련이없는 간단한 상태입니다. 내가하고 싶은 무엇
지정된 은행에 계정이있는 모든 고객를 검색하는 NHibernate에 쿼리입니다. 나는 은행 클래스 (따라서 이 키워드가 은행을 참조한다) 안에이 시도 :
IList<Customer> customers = session.QueryOver<Customer>()
.Where(x => x.Banks.Keys.Contains(this))
.List();
그리고 심지어 나는 다음과 같은 예외가 그것을 실행하려고하면 위의 쿼리가 오류없이 컴파일 생각 :
System.Exception : 인식 할 수없는 메서드 호출 : System.Collections.Generic.ICollection`1 [[Finance.Bank, Finance, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null]] : 부울 .Bank)
그런데 어떻게 이런 종류의 쿼리를 올바르게 수행 할 수 있습니까? 감사!
PS : This SO question는 ISET 수집을 수행하는 방법을 보여줍니다, 그리고 this SO question은 내가 무엇을 시도하고있어하면 ICriteria API를 사용하지 못할 수 있음을 주장한다.