如何使用Nhibernate QueryOver连接两个非关系定义列的两个表
使用NHibernate如何使用Nhibernate QueryOver连接两个非关系定义列的两个表,nhibernate,queryover,Nhibernate,Queryover,使用NHibernateQueryOver,我想使用映射中未定义为关系的两列连接两个表 这不是我的确切情况,但这可以解释这一点 表: Employee(Id, Name, DepartmentId, SomeCode,Address) Department (Id, Name, ,Code) 挑选 SELECT * FROM EMPLOYEE E JOIN DEPARTMENT D ON D.Code = E.SomeCode 有人能告诉我如何使用NHibernate
QueryOver
,我想使用映射中未定义为关系的两列连接两个表
这不是我的确切情况,但这可以解释这一点
表:
Employee(Id, Name, DepartmentId, SomeCode,Address)
Department (Id, Name, ,Code)
挑选
SELECT *
FROM EMPLOYEE E
JOIN DEPARTMENT D
ON D.Code = E.SomeCode
有人能告诉我如何使用NHibernate
QueryOver
进行此查询吗。请注意,员工
中的“SomeCode”和部门
中的“code”未定义为关系。DepartmentId是外键,我可以使用JoinAlias
将它们连接起来,但我希望使用一种不同的方式
QueryOver
/标准
)SELECT ...
FROM EMPLOYEE E, DEPARTMENT D
WHERE D.Code = E.SomeCode
...
但我建议:在代码中创建映射。简单介绍多对一
关系。它将被延迟加载(仅在使用时),并将很好地满足我们的需求-在QueryOver
中用作Join
如果存在这种关系,如果业务对象域中存在这种关系,我们就不应该害怕使用它。我们可以通过安全等方式隐藏它。谢谢您的建议。我(对NHibernate不熟悉)不太清楚如何按照您的建议在代码中引入关系。能给我一些提示吗。我们可以在我想要的地方加上那种关系,然后摆脱那种(暂时的关系)吗。有一个引用映射(员工部门,由
property ref
驱动。搜索它,它将为您提供答案;)享受NHibernate
SELECT ...
FROM EMPLOYEE E, DEPARTMENT D
WHERE D.Code = E.SomeCode
...