【发布时间】:2011-06-16 20:32:03
【问题描述】:
我有以下查询可以得到我想要的结果:
int associatedId = 123;
MyObject alias = null;
var subQuery = QueryOver.Of<DatabaseView>()
.Where(view => view.AssociatedId == associatedId)
.And(view => view.ObjectId == alias.ObjectId)
.Select(view => view.ObjectId);
var results = session.QueryOver<MyObject>(() => alias)
.WithSubquery.WhereExists(subQuery)
.List();
DatabaseView 已被映射为实际的 NHibernate 实体(因此我可以将其与 QueryOver 一起使用),但它与 HBM 映射中的 MyObject 无关。
此查询使用SELECT ... FROM MyObject WHERE EXISTS (subquery for DatabaseView here) 返回IList<MyObject>。如何重写它以返回相同的数据但使用 JOIN 而不是子查询?
【问题讨论】:
标签: join nhibernate queryover