2010-06-01 105 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() 
... 

它应该做的伎俩。

相关问题