私は、次の形式のエンティティクエリにLINQのを持っている:ネストされたクエリはサポートされていません。 Operation1 =「UnionAll」Operation2 =「MultiStreamNest」
var x = from a in SomeData
where ... some conditions ...
select new MyType
{
Property = a.Property,
ChildCollection = from b in a.Children
select new MyChildType
{
SomeProperty = b.Property,
AnotherProperty = b.AnotherProperty
}
};
var y = from a in SomeData
where ... some other conditions ...
select new MyType
{
Property = a.Property,
ChildCollection = from b in a.Children
select new MyChildType
{
SomeProperty = b.Property,
AnotherProperty = b.AnotherProperty
}
};
var results = x.Concat(y);
(これは簡単な例である - 「」と「選択」の句は、より複雑です私は別のクエリ文を使用しています。単一の結合文を作成するには複雑すぎる、条件が多すぎる、コンパイルするまでに時間がかかる)
コンパイルは正常ですが、実行時に例外はありません:
"The nested query is not supported. Operation1='UnionAll' Operation2='MultiStreamNest'
注:私はネストした型付けされた構造に投影しようとしています。私がConcat()の前にxとyの.ToList()を呼び出すとうまくいきます。さらにポイントとして、私のプロパティの1つは列挙型ですが、整数ラッパープロパティを使用して割り当てています。
すべてのデータをメモリに取り込むことなく、私がやりたいことができる方法はありますか?それともenumが失敗の原因ですか?
おかげで、
T
ちょうどこれらの2番目を試して、最初と全く同じように動作するようです、つまり、私が期待したように動作しません(@ Arionの投稿のコメントを参照してください)... –
...今削除されました。とにかく、結果セットとして区別する必要がありますが、私は例外を取得 "Distinct操作は、指定された引数のコレクションResultTypeに適用することはできません"私は、Distinctはネストされたコレクション。 –
空の場合どうしますか? – innovia