【发布时间】:2014-01-23 12:06:27
【问题描述】:
我是 nHibernate 的新手。我有以下 SQL 内连接查询,
SELECT e.name,
d.deptname
FROM demo_employee AS e
INNER JOIN demo_department AS d
ON e.departmentid = d.deptid
下面的sql查询使用Query Over的linq表达式是什么。
我已经编写了以下查询,但它在以下位置“c.Department.DeptId”处出现错误。
var Query =
Session.QueryOver<Employee>()
.JoinQueryOver<Department>(c => c.Department.DeptId)
.Where(k => k.Name == k.DeptId);
【问题讨论】:
-
这应该是相当简单的,但如果你先尝试自己解决它,你会学到更多:你尝试了什么,发生了什么?请使用您已经尝试过的 LINQ 查询以及收到的任何错误等更新您的问题。
-
@Undefiend 无需更新。你的问题被搁置了。下次尝试提出更好的问题
-
@SubinJacob:不,搁置问题的目的是可以编辑和改进它们,然后重新打开。当这个问题可以挽救时,OP 不需要提出 新的 问题。
-
我已经更新了我的问题
-
...在重新打开您的问题之前,您尝试过的查询将不起作用。 ORM 世界的工作方式有点不同。你确实不必须表达JOIN。这是由您的映射完成的。所以只需使用:
.JoinQueryOver<Department>(c => c.Department)让两个表都加入。电话Where()说:Department.Name == Department.DeptId... 这很可能不是您想要的
标签: sql linq nhibernate