The*_*ght 7 sql linq nhibernate union fluent
如何在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();
Run Code Online (Sandbox Code Playgroud)
我尝试了Union()和Concat()方法但是它们失败了:
eventQuery1 = eventQuery1.Union(eventQuery2);
The UnionResultOperator result operator is not current supported
Run Code Online (Sandbox Code Playgroud)
我不想从数据库加载对象然后应用concat,我希望在从数据库返回对象之前完成它,以便我可以在union的最终列表中应用一些Fetches.
不确定它是否适用于 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))
Run Code Online (Sandbox Code Playgroud)