我在同一个表上有以下两个查询,需要合并它。
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());