wie äußere Verbindung in F # mit FLINQ?

9

Frage sagt so ziemlich alles. Ich habe eine große flinq Abfrage des folgenden Formulars:

%Vor%

Wie kann ich mit diesem Formular einen linken äußeren Join zwischen diesen beiden Tabellen erstellen?

    
Ramy 10.01.2011, 19:57
quelle

3 Antworten

5

Ich denke, Sie können die Funktion groupJoin verwenden, die im Modul Query verfügbar ist. Hier ist ein Beispiel mit Northwind mit Produkten als primäre Tabelle und Kategorien als die Tabelle mit Fremdschlüssel:

%Vor%

Es gibt definitiv bessere Möglichkeiten, dies auszudrücken, indem Sie die seq { .. } -Syntax verwenden und Join-ähnliches Verhalten mit verschachtelten for -Schleifen implementieren. Leider werden die Zitate zu LINQ-Übersetzer diese wahrscheinlich nicht unterstützen. (Ich persönlich würde es vorziehen, den Code mit verschachteltem for zu schreiben und mit if nach einer leeren Sammlung zu suchen).

Ich habe gerade einige Verbesserungen in der PowerPack-Bibliothek als Teil einer Vertragsarbeit für das F # -Team betrachtet, also wird sich das hoffentlich in Zukunft verbessern ... (aber keine Versprechungen!)

    
Tomas Petricek 10.01.2011, 23:20
quelle
0

Vielleicht sollten Sie eine Ansicht in der Datenbank erstellen, die den linken äußeren Join und dann LINQ über diese Ansicht ausgeführt hat.

    
ninegrid 18.02.2011 18:43
quelle
0

Ich habe am Ende getrennte Abfragen für jeden äußeren Join erstellt und diese an bestimmten Punkten aufgerufen, wenn ich das Resultset der äußersten Abfrage durchlaufen habe.

    
Ramy 18.02.2011 19:02
quelle

Tags und Links