2010-06-01 54 views
2

我需要幫助創建一個帶有亞音速的LINQ SQL。首先是基礎知識,這工作得很好:Subsonic 3 - 序列不包含匹配元素

var query = (from o in bd.concelhos 
        orderby o.descricao 
        select o); 

     var results = query.ToList<concelhos>(); 

不過,我想篩選出一些列和我創建了下面的代碼:在與描述的ToList方法

var query = (from o in bd.concelhos 
        orderby o.descricao 
        select new FilteredConcelhos { id = o.idDistrito + "/" + o.idConcelho, descricao = o.descricao }); 

     var results = query.ToList<FilteredConcelhos>(); 

其中出現了錯誤「序列中沒有匹配的元素」

任何幫助將是巨大的這... ...

更新: 原來我錯過了獲取設置屬性在新聲明的類... 像這樣

public class FilteredConcelhos 
{ 
    public string id { get; set; } 
    public string descricao { get; set; } 
} 

這將清除異常,但由此產生的名單仍然是所有錯誤(FilteredConcelhos.id包含任何與FilteredConcelhos.descricao包含數字)

回答

0

您是否嘗試過使用匿名類型?

var query = (from o in bd.concelhos 
       orderby o.descricao 
       select new { id = o.idDistrito + "/" + o.idConcelho, 
           descricao = o.descricao }); 

var results = query.ToList(); 
+0

問題是我想返回結果。我怎樣才能返回一個匿名類型? – 2010-06-01 20:01:55

1

您可以嘗試先執行ToList,然後再選擇 - 然後通過linq 2對象執行選擇!

+0

你能提供一些代碼嗎?如何首先執行ToList然後選擇? – 2010-06-04 08:42:40

+0

嘗試類似這樣: var query =(from bd.concelhos中的o orderby o.descricao select o); var results = query.ToList()。Select(o => new FilteredConcelhos {id = o.idDistrito +「/」+ o.idConcelho,descricao = o.descricao}); – saintedlama 2010-06-04 17:11:00

0

不幸的是,這發生在我身上很多。我不知道的LINQ的2對象是如何工作的細節,但如果你調用ToList原來的對象,像這樣:

from o in bd.concelhos.ToList() 
... 

它應該做的伎倆。

相關問題