【发布时间】:2014-11-23 11:45:55
【问题描述】:
我正在尝试将以下 SQL 转换为 QueryOver:
Select 1
From myTable mt
Where mt.ForeignKey in (select ID from otherTable ot where ot.ID = R.ID)
我想在 EXISTS / NOT EXISTS 语句中使用这个子查询,例如:
select * from table R where .... AND EXISTS (query above)
目前我有类似的东西:
mainQuery.WithSubquery.WhereExists(QueryOver.Of<myTable>()
.Where(mt => mt.ForeignKey)
.WithSubquery.IsIn(QueryOver.Of<otherTable>().Where(c => c.Id == R.SomeId)));
我将此查询创建为要连接到主查询的子查询。 问题是别名为 R 的表是主查询调用的表,我不知道如何访问表(NHibernate 模型)R 的列(在上面的查询中无法访问),所以我的问题是:
如何从主查询中获取值并在子查询中使用它们。我认为这只能通过创建内联子查询(如在 mainQuery.WithSubquery.Where(..) 或类似)中实现,但我看不出最好的方法是什么。感谢您的帮助!
提前致谢!
【问题讨论】:
标签: c# .net nhibernate queryover nhibernate-criteria