Ich habe 3 Klassen/Tabellen: Car
, User
und UserVote
(die eine Überbrückungstabelle zwischen den anderen beiden ist).Kombinieren innere Join und linken Join in Entity Framework Abfrage
Zum Beispiel:
Car (id/name):
1/Ford Focus
2/Honda Civic
3/Citroen C2
User (id/ignoreUser):
1/false
2/true
3/false
UserVote (UserId/CarId)
1/2
1/3
2/1
3/2
Ich habe eine Methode, die den Top-x Autos basierend auf der Anzahl der Stimmen bekommt.
Dieser Code betrachtet nur die Autos und die UserVote-Tabelle und nicht das ignoreUser-Feld auf User. Ich versuche, meinen Entity Framework-Code zu aktualisieren, um mich der Benutzertabelle anzuschließen, aber ich habe keinen Erfolg. Letztendlich suche ich nach einer Liste von Autos sortiert nach der Anzahl der UserVotes, mit Ausnahme derjenigen, die IgnoreUser auf true setzen. Im obigen Beispiel möchte ich die Methode, IQqueryable in der richtigen Reihenfolge (Honda Civic dann Citroen C2) zurückgeben.
Ich denke, ich möchte Autos nehmen und dann links mit Benutzer User verbunden mit UserVote verbinden? Ist das mit Entity Framework möglich?
Diese Frage folgt aus dem Ratschlag in einem Kommentar zu einem previous question.
Wenn ich die zweite Option mit den Join-Operationen verwende, bekomme ich doppelte Autos zurück - eins für jede Stimme. Auch ist userVotes immer gleich einem, der meiner Meinung nach auf den inneren Join zurückzuführen ist? – psych
Ich werde versuchen, die zweite Variante zu beheben, Können Sie nicht die erste Lösung verwenden, ich bin mir sicher, es funktioniert. – octavioccl
@psych, ich habe es behoben, aber ich schlage vor, die erste Lösung zu verwenden, wenn Sie können. IMHO ist es sauberer – octavioccl