合并两个查询结果

时间:2013-07-02 15:43:12

标签: asp.net-mvc asp.net-mvc-3 linq entity-framework entity-framework-mapping

我在同一个表上有两个查询,需要合并它。

 var Prod = this.UnitOfWork.myRepository.GetData();
 var PreProd = this.UnitOfWork.myRepository.GetData();

 var Merge = Prod.Union(PreProd);

但是当我检查Merge的结果时,它并没有显示联盟,但显示了以下消息

  

消息:此方法不支持LINQ to Query Result Union   工作实体基础设施,不打算使用   直接来自您的代码

如何实现这一目标。

2 个答案:

答案 0 :(得分:4)

您可以先使用.AsEnumerable()将IQueryable转换为IEnumerable。

 var Prod = this.UnitOfWork.myRepository.GetData().AsEnumerable();
 var PreProd = this.UnitOfWork.myRepository.GetData().AsEnumerable();

 var Merge = Prod.Union(PreProd);

答案 1 :(得分:1)

LINQ to EF支持Union

IQueryable<TSource> Union<TSource>(
this IQueryable<TSource> source1,
IEnumerable<TSource> source2
)

所以试试:

 var Prod = this.UnitOfWork.myRepository.GetData();
 var PreProd = this.UnitOfWork.myRepository.GetData();

 var Merge = Prod.Union(PreProd.AsEnumerable());