我正在尝试在 where 子句中编写一个相关的子查询,如下所示:
var foo = from d in session.Query<Document>()
where true ==
( from a in session.Query<ACLEntry>()
where a.Id == d.Id || a.Id == null
select a.Result
).FirstOrDefault()
select d;
我认为 Linq 语句本身很好,因为我可以让它在我进行原型设计的 LinqPad 中运行。但是 NHibernate 向我抛出了这些神秘的错误:
错误 NHibernate.Hql.Parser [(null)] - NoViableAltException(86@[])
错误 NHibernate.Hql.Parser [(null)] - MismatchedTreeNodeException(72!=3)
这是 NHibernate LINQ 提供程序不受支持的场景吗?关于我如何能够重组此查询以解决它的任何想法?