2014-01-09 1 views
6

LINQ에서 Fluent NHibernate로 두 쿼리를 통합하는 방법은 무엇입니까? LINQ의 두 쿼리를 Fluent NHibernate에 통합하는 방법?

그들은 같은 형식을 반환하지만 쿼리는 별도의 기관을 통해 다음과 같습니다
IQueryable<Event> eventQuery1 = session.Query<Event>().Where(e => e.EventType.Id == eventTypeId); 

IQueryable<Event> eventQuery2 = session.Query<Nomination>().Select(n => n.Event).Distinct(); 

내가 연합()와 CONCAT() 메소드를 시도하지만 실패 :

eventQuery1 = eventQuery1.Union(eventQuery2); 

The UnionResultOperator result operator is not current supported 

그렇게하지 데이터베이스에서 개체를로드하고 concat을 적용하려면 개체가 데이터베이스에서 반환되기 전에 작업을 완료해야합니다. 이렇게하면 유니언의 최종 목록에서 일부 페치를 적용 할 수 있습니다. 이 NHibernate에 LINQ와 함께 작동하지만 일이 주위의 경우

+0

희망 [이] (http://msdn.microsoft.com/en-us/library/bb156049%28v = vs.110 % 29.aspx) 예제가 도움이됩니다. – user2989408

+0

나는 Union()과 Contact() 메소드를 시도했다. 그들은 NHibernate를 지원하지 않는다. –

+1

[SQL Union to Hibernate Criteria]의 가능한 복제본 (http://stackoverflow.com/questions/18623146/sql-union-to-nhibernate-criteria) – Najera

답변

0

확실하지 :

IQueryable<Event> eventQuery = 
    session.Query<Event>() 
      .Where(e => e.EventType.Id == eventTypeId 
        || session.Query<Nomination>() 
           .Select(n => n.Event.Id) 
           .Contains(e.Id)) 
관련 문제