Könnten Sie mir helfen zu verstehen, warum der folgende Code während der Ausführung eine Ausnahme auslöst?IQueryable ausführen Ausdruck gegen zugrunde liegenden QueryProvider
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);
Es mir sehr seltsam ist, ist, dass Abfrage-Provider nicht in der Lage Ausdruck auszuführen, wenn beide Queryprovider und Expression von derselben IQueryable Instanz getroffen werden!
Edit: Die ausgelöste Ausnahme ist ArgumentException unter Berücksichtigung des Parameters 'Ausdruck' der Methode Execute.
Was erwarten Sie, 'data.Expression' in Ihrem Fall zu sein? Was ist der Fehler, den Sie bekommen? – user3185569
In Ihrem Fall wird erwartet, dass 'data.Expression' mehrere' TestDto' Objekte zurückgibt, Sie aber 'TestDto' als' TResult' (einzelnes Objekt) übergeben. Versuchen Sie, einen Ausdruck zu übergeben, der ein einzelnes 'TestDto' zurückgibt (dessen Rückgabetyp' TestDto' ist). –
@YacoubMassad Vielen Dank. Das ist genau der Fall :) –