2010-07-01 44 views
0

我正在做我的第一个nHibernate加入。在我下面的函数中,我想返回指定查询的记录列表。通常我的列表类型是代表数据库表的类。在这种情况下,由于我正在进行连接,因此我创建了一个只包含我从数据库中检索的列的字段的自定义类。但是,当我创建查询时,出现“错误:42601:输入结束时出现语法错误”,这似乎与使用ReportColumns有关。有人可以告诉我,我所做的事情是否可能,如果不能做到这一点,可以做什么?nHibernate加入语法错误

public IList<ReportColumns> FetchRecords(NHibernateDBConnection db, string MyName) 
{ 
    return db.Session 
     .CreateQuery("SELECT s.RunNumber, s.TestStarted, s.StationName, t.Name FROM MyTable1 s, MyTable2 t WHERE (s.RunNumber = t.RunNumber AND t.Name = :MyName") 
     .SetParameter("MyName", MyName) 
     .List<ReportColumns>(); 
} 

回答

0

您错过了右括号。

+0

好眼睛。我解决了这个问题,但查询仍然不被接受。我遇到以下情况: {“值\”System.Object [] \“不是\”MyApp.MyTable + ReportColumns \“的类型,不能用于此泛型集合。\ r \ n参数名称:值“} 还有其他想法吗? – 2010-07-01 23:42:19

+0

我忽略了这一点。你正在选择一个任意的fiels列表,NHibernate将返回列表。如果您需要ReportColumn的列表,则需要使用变换器或Linq-to-objects投影。 – 2010-07-02 01:23:29