合并两个查询结果



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

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

但当我检查合并的结果时,它没有显示Union,而是显示以下消息

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

如何做到这一点。

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

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

LINQ到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());

最新更新