2012-02-15 43 views
1

我有一個員工類,我正在使用nhibernate來檢索員工數據。它給出了 完整的列(等式sql - Select *)。但是,如果我想要選擇列(如EmployeeName和EmployeeID),那麼我需要創建一個具有這兩個屬性的類(例如,Empl類)。並使用AliasToBeanResultTransformer即投影我可以收回。我想知道,有沒有在NHibernate的任何方式(不包括創建子類(EMPL類),或者沒有硬編碼的HQL查詢),這樣我可以retrive特定的列值...在nhibernate中查找數據列明智

class Employee 
{  
    public int EmployeeId { get; set; } 
    public string EmployeeName { get; set; } 
    public int ResidingInCountryId { get; set; } 
    public virtual Country ResidenceCountry { get; set; } 
} 

回答

0

如果你只是想從查詢,然後投射出幾列您可以

一)雖然你提到你不喜歡這種出於某種原因

b)如果你想REALLY匿名對象的列表,然後簡單地使用DTO省略結果變換器,這將導致帶有投影值的匿名對象列表。這對數據綁定就足夠了。

此外,您不需要僅將HQL用於項目,您可以使用Criteria,QueryOver或NH Linq。

+0

@ Rippo感謝您的回覆我正在嘗試創建一個通用的方法..所以我只需要傳遞主類實例和列名稱列表。例如'公共IList GetListByCriteriaQuery ()'T是主類,S是子類(T類的列的任意組合)。不可能創建列的每個組合的類,因爲它不是固定的。所有三個建議,我發現我需要硬編碼我不想做的列名。由於缺乏空間,我不能把我完整的邏輯。你能夠理解我或我需要討論更多。 – user1000528 2012-02-15 12:38:30

+0

我實現了Criteria並能夠返回Array對象的列表。謝謝 – user1000528 2012-02-17 06:32:23