2010-08-16 50 views
2

我試圖從下面的查詢中獲得一個名爲'域'的字段的唯一值列表。我的下拉列表(drpDomain)包含以下格式的值:{Key = LNAU}等等,我只想看到它本身的值。我錯過了明顯的東西嗎?謝謝!在LINQ中分組 - 簡單問題

var domainList = from v in db.Vendors 
         group v by new {v.Domain} into g 
         select g.Key; 

     drpDomain.DataSource = domainList; 
     drpDomain.DataBind(); 
+0

可能會關閉,但應該是g.Value? – griegs 2010-08-16 04:45:22

+0

沒有g.Value似乎可用。感謝您的評論:) – Glinkot 2010-08-16 04:56:47

+0

在Linq中,與基本上返回組的「標題」的SQL分組不同,在Linq中,分組實際上返回組(IGrouping)。 – SirDemon 2010-08-16 04:57:54

回答

4

考慮這一點,而不是:

var domainList = from v in db.Vendors 
       select v.Domain; 

drpDomain.DataSource = domainList.Distinct(); 
drpDomain.DataBind(); 

注:

在查詢中真正的小人是匿名的對象;然而,獨特的查詢在傳達意圖方面更有效,甚至可能更有效率。也就是說,如果您只想修復分組查詢的意外結果,請嘗試以下操作:

var domainList = from v in db.Vendors 
       group v by v.Domain into g 
       select g.Key; 
+0

完美!非常感謝您的幫助伴侶。 – Glinkot 2010-08-16 06:11:48