0
我想从2个不同的表中检索一些数据。他们被命名为'A'和'B'。 还有另一个名为'C'的表。NHibernate的HQL查询与左外连接
A和B有 'C' 的引用,但 'C' 没有既不A和B.
参考我的SQL命令将是这样的:
select
A.x,
A.y,
B.z
from
A
LEFT OUTER JOIN C ON C.i = A.i
LEFT OUTER JOIN B ON B.i = C.i
问题是:我在表A中需要一些数据,而在表B中需要一些数据。 我需要从表A中检索所有来自表A的属性等于表B属性的数据,因此来自表B的一些数据。 这就是简单,非常简单的HQl命令(使用LINQ更容易):
select a.x, a.y, b.z
from A as a, B as b
where a.x = b.x
但问题是:当a.x为NULL时,我还需要从A中检索数据。当然,我会得到从BX
我试着使用LINQ DefaultIfEmpty()一个空值,但因为我在一个实体使用session.Query(),DefaultIfEmpty尚未在NH 3
如何实现的我可以在HQL中写入吗?
使用HQL时,您查询类而不是表。这是使用ORM的原因之一。那么你的班级模特怎么看? –