2010-07-01 48 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