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

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

问题描述

我试图做一个连接,并且不断收到这个错误。 [SELECT
t.CourseId FROM Task as t INNER JOIN
Courses as c,CoursePermissions as cp
WHERE(t.CourseId = 1)]




我有

 常量字符串查询=SELECT t.CourseId FROM Task as t INNER JOIN课程为c,CoursePermissions为cp WHERE(t.CourseId = 1); 

var a = session.CreateQuery(query);

我试图实现的Sql

  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

解决方案

加入HQL与在SQL中使用它有点不同。在HQL中,通过提供路径(这个基本上是你的类的引用属性)来连接这些表。所以不是

 选择t.CourseId从任务作为t INNER JOIN作为c的课程... 

您需要编写

  // c.Taks是您的课程中的IList属性class 
SELECT t.CourseId FROM Courses as c INNER JOIN c.Tasks as t ...


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

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

I have

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);

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)

I am using nhibernate 3.1 and fluent nhibernate 1.2

解决方案

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.

So instead of

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

you need to write

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

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

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