我有tableA 和tableB
tableA 有一个 B_Id 属性。
这个查询工作正常:
IEnumerable<A> a = Session.Query<A>().Fetch(r=>r.B);
但我想要这样的东西:
IEnumerable<A> a = Session.Query<A>().Where(r=>r.B.Active).Fetch(r=>r.B);
似乎当我这样做时,它不再进行简单的外部连接,如果表 B 中没有事件记录,我将得不到任何结果。
我想做一个纯外连接,它仍然会给我结果,但 A 实体的 B 属性为 null。
nhibernate LINQ 是否支持这种在外连接表上放置 where 子句的能力?
最佳答案
根据 this post on the nhusers group它显然不受支持,您必须使用 HQL。
至于为什么,我推测作者计划添加它但有更高的优先级。就我个人而言,我将其视为一项关键功能。
关于c# - 为什么 nhibernate LINQ 不支持简单的外部连接(给定外部连接表上的 where 子句)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4588353/