【发布时间】:2013-09-25 04:17:18
【问题描述】:
我在我的 C# Web 应用程序中使用 NHibernate 完成了 OR 映射。当我想获取所有叶节点时,我使用这样的查询语句:
List<NODE> LeafList =(List<NODE>) Session.CreateQuery("from NODE as node where node.Id not in (select FatherNodeId from NODE)").List<NODE>();
但是,查询后我得到 LeafList 的计数等于 0。我的数据库是这样的:
Id FatherNodeId
1 NULL
3 1
4 3
5 3
所以,我的预期结果应该是 id 为 4 或 5 的节点。 更令人困惑的是,如果我将“not in”更改为“in”,则查询运行良好,并返回 id 为 1 或 3 的节点。
那么我的 not in 子查询有什么问题?
【问题讨论】:
标签: c# nhibernate subquery hql