2

同じテーブルに次の 2 つのクエリがあり、マージする必要があります。

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

 var Merge = Prod.Union(PreProd);

しかし、マージの結果を確認すると、ユニオンは表示されませんが、次のメッセージが表示されます

メッセージ: このメソッドは、LINQ to Query Result Union が機能しないエンティティ インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

これをどのように達成できるか。

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 に答える