如何在LINQ中将两个查询联合到流畅的NHibernate?
它们返回相同的类型,但查询位于不同的实体上:
IQueryable<Event> eventQuery1 = session.Query<Event>().Where(e => e.EventType.Id == eventTypeId);
IQueryable<Event> eventQuery2 = session.Query<Nomination>().Select(n => n.Event).Distinct();
我尝试了Union()和Concat()方法但它们失败了:
eventQuery1 = eventQuery1.Union(eventQuery2);
The UnionResultOperator result operator is not current supported
我不想从数据库加载对象然后应用concat,我希望在从数据库返回对象之前完成它,这样我就可以在union的最终列表中应用一些Fetches。 / p>
答案 0 :(得分:0)
不确定它是否适用于NHibernate LINQ,但解决方法是:
IQueryable<Event> eventQuery =
session.Query<Event>()
.Where(e => e.EventType.Id == eventTypeId
|| session.Query<Nomination>()
.Select(n => n.Event.Id)
.Contains(e.Id))