1
次のコードが実行中に例外をスローする理由を理解できますか?基礎となるQueryProviderに対してIQueryable式を実行する
IQueryable<TestDto> data = Enumerable.Range(1, 10000).Select(i => new TestDto()
{
Id = i,
Name = (i%1000).ToString()
}).AsQueryable();
var test = data.Provider.Execute<TestDto>(data.Expression);
それは私にとって非常に奇妙であるQueryProviderと発現の両方が同じのIQueryableインスタンスから取得されたときに、そのクエリプロバイダは、式を実行することができません!
編集: Throw例外は、メソッドExecuteのパラメータ 'expression'を考慮したArgumentExceptionです。
あなたはdata.Expression'は、あなたのケースであることを '何を期待していますか?あなたは何を得ているのですか? – user3185569
あなたの場合、 'data.Expression'は複数の' TestDto'オブジェクトを返すことが期待されますが、 'TestDto'を' TResult'(単一項目)として渡しています。単一の 'TestDto'(戻り値の型は' TestDto')を返す式を渡してみてください。 –
@ YacoubMassadありがとうございました。それはまさにその場合です:) –