2010-07-06 44 views
2

我已經登陸到一個使用MVC2的項目的中間NHibernate。我之前並沒有使用過NHibernate,所以就像這個問題看起來那麼簡單,我有點不深。如何使用NHibernate獲得第一個字母的清晰列表

我必須爲許多公司組創建一個目錄。首要任務是獲得每家公司的首字母清單。

因此,如果我們有

ACompany1
ACompnay2
BCompany1
DCompany1
DCompany2
ECompany1

我需要得到像

ABDE(注列表,有沒有'C')

有人可以請我提供我需要做什麼的大綱?謝謝

+0

可能重複[如何獲得與某個字母開頭的結果?](http://stackoverflow.com/questions/3185023 /如何得到結果,那開始與一定的字母) – 2010-07-06 09:33:27

+0

我不同意。獲取以某個字母開頭的結果與獲取不同字母的列表不同。 – DaveDev 2010-07-06 10:17:32

回答

1

我想知道你是否從錯誤的方向接近了這個。 NHibernate用於將數據庫對象映射到您的域對象。你可以創建一些自定義地圖文件,使用公式來獲取不同的字符,但我認爲這是一個簡單的SQL查詢就足夠了的情況之一。

另一種方法是將所有公司加載到內存中並使用linq來獲取名稱。

companies.Select(company => company.Name.Substring(0, 1)); 

我用諷刺的框架和奮鬥嘲笑特定實體時,有時會狹隘的,它是不是直到我退後一步,我意識到,這將是更容易和更清潔嘲笑我自己的實體。

0

首先你需要決定你將如何使用sql。可能你會使用某種SUBSTRING函數。解決之後,您可以編寫類似的HQL查詢。

3

假設類名是Company和財產Name ...

var groups = session.CreateQuery(
        "select distinct substring(Name, 1, 1) from Company") 
        .List<string>() 
相關問題