期望加入的路径!休眠错误 [英] Path Expected for Join! Nhibernate Error

查看:22
本文介绍了期望加入的路径!休眠错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试加入,但不断收到此错误

I trying to do a join and I keep getting this error

预期加入的路径![选择t.CourseId FROM Task as t INNER JOIN课程为 c,课程权限为 cp哪里 (t.CourseId = 1)]

Path expected for join! [SELECT t.CourseId FROM Task as t INNER JOIN Courses as c, CoursePermissions as cp WHERE (t.CourseId = 1)]

我有

const string query = "SELECT t.CourseId FROM  Task as t INNER JOIN Courses as c, CoursePermissions as cp WHERE (t.CourseId = 1)";

var a = session.CreateQuery(query);

我正在尝试实现的我的 Sql

My Sql I am trying to achieve

SELECT     dbo.Tasks.CourseId
FROM         dbo.Tasks INNER JOIN
                      dbo.Courses ON dbo.Tasks.CourseId = dbo.Courses.CourseId INNER JOIN
                      dbo.CoursePermissions ON dbo.Courses.CourseId = dbo.CoursePermissions.CourseId
WHERE     (dbo.Tasks.CourseId = 1)

我使用的是 nhibernate 3.1 和流畅的 nhibernate 1.2

I am using nhibernate 3.1 and fluent nhibernate 1.2

推荐答案

这意味着您在 HQL 中使用内部联接的工作方式与在 SQL 中使用它有点不同.在 HQL 中,您通过提供路径"来连接表,这基本上是您的类的引用属性.

It means that you using an inner join in HQL works a little different than using it in SQL. In HQL you join the tables by providing the "path", which is basically the referenced property of your class.

所以代替

SELECT t.CourseId FROM Task as t INNER JOIN Courses as c ...

你需要写

// c.Taks is the IList property in your Courses class
SELECT t.CourseId FROM Courses as c INNER JOIN c.Tasks as t ...

这篇关于期望加入的路径!休眠错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆