我在同一个表上有两个查询,需要合并它。
var Prod = this.UnitOfWork.myRepository.GetData();
var PreProd = this.UnitOfWork.myRepository.GetData();
var Merge = Prod.Union(PreProd);
但是当我检查Merge的结果时,它并没有显示联盟,但显示了以下消息
消息:此方法不支持LINQ to Query Result Union 工作实体基础设施,不打算使用 直接来自您的代码
如何实现这一目标。
答案 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());