我已经为此花了一些时间,似乎已经开始变得不可能了。

我想Concat()两个IQueryable,然后将结果作为单个查询执行。我尝试过这样的事情:

var query = from x in ...
select new
{
    A = ...
    B = ...
    C = ...
};

var query2 = from y in ...
select new
{
    A = ...
    B = ...
    C = ...
};

var query3 = query.Concat(query2);

但是,最后一行给我以下错误:



似乎期望该参数使用IEnumerable。有没有办法解决?

看来我可以将两个查询都解析为IEnumerable,然后再对其进行Concat()。但是创建单个查询会更有效,并且似乎应该可行。

最佳答案

如您先前在评论中所说,这两个查询似乎返回了不同的对象:

查询1(根据评论):

f__AnonymousTypee<Leo.Domain.FileItem,Leo.Domain.Employ‌​ee,int,string,string>

Query2是
f__AnonymousTypee<Leo.Domain.FileItem,L‌​eo.Domain.Employee,int?,string,string>

这就是Concat给您一条错误消息,提示无效参数的原因。

关于c# - Concat两个具有匿名类型的IQueryable?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24501266/

10-16 08:52