2

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

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

 var Merge = Prod.Union(PreProd);

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

消息:此方法支持 LINQ to Query Result Union not working Entities 基础结构,并且不打算直接从您的代码中使用

如何做到这一点。

4

2 回答 2

4

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

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

 var Merge = Prod.Union(PreProd);
于 2013-07-02T15:51:09.770 回答
2

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());
于 2013-07-02T15:58:58.847 回答