Ich habe einen Linq-Provider, der erfolgreich Daten aus meiner ausgewählten Datenquelle bezieht, aber was ich jetzt tun möchte, dass ich meine gefilterte Ergebnismenge habe, ist erlaubt Linq to Objekte, um den Rest der Ausdrucksbaumstruktur zu verarbeiten (für Dinge wie Joins, Projektion usw.)Teil einer IQueryable-Abfrage durchführen und den Rest an Linq für Objekte übergeben
Mein Gedanke war, dass ich die Expression-Konstante, die meinen IQueryProvider enthält, einfach mit den Resultsets IEnumerable über einen ExpressionVisitor ersetzen konnte gib diesen neuen Ausdruck zurück. Auch das Rück der IEnumerable des Anbieters von meinem IQueryable ... aber das scheint nicht Idee
bearbeiten :-(
zu arbeiten: Einige gute Antworten hier, aber angesichts der Form ...
In meinem Provider kann ich einfach die 2 Resultsets von Kunden und Bestellungen zurückbekommen, wenn die Daten von einer SQL-Quelle stammten, würde ich nur die SQL-Join-Syntax konstruieren und weiterleiten, aber in diesem Fall stammen die Daten nicht von a SQL-Quelle, also muss ich den Join-Code machen ... aber wie gesagt, ich habe die 2 Ergebnismengen, und Linq to Objects kann einen Join machen ... (und später die Projektion) wäre es wirklich schön, einfach die Expression-KonstantenMyProv.Table<Customer>
und
MyProv.Table<Order>
durch
List<Customer>
und
List<Order>
zu ersetzen und einen
List<>
-Provider den Ausdruck verarbeiten zu lassen ... ist das möglich? Wie?
ich dir von meinen Knien danken - tief im Ausdrucksbaum Besucher. :) Das ist genau das, was ich brauchte – Rik