2017-03-07 5 views
-1

Das ist mein Code:Wie trete ich 3 Tabellen mit Linq-Syntax

// Put together a list of new communities 
var communityList = from x in db.CommunityTeams 
        join y in db.Communities on x.CommunityId equals y.CommunityId 
        join z in db.CommunityRoles on x.CommunityRole equals z.Role 
        where x.UserId == userId 
        select new 
        { 
         CommunityName = y.ComunityName, 
         CommunityRoleName = z.Role  
        }; 

Die z mitmachen db.CommunityRoles wird mir diesen Fehler geben:

die Klausel in falsche Join. Wie bekomme ich die Syntax richtig?

+0

Ihnen welchen Fehler geben? –

+1

Bitte zeigen Sie Ihre Modellstruktur und den Fehler, den Sie bekommen. – CodingYoshi

+0

Der Fehler, den ich bekomme, ist "die Join-Klausel ist falsch" –

Antwort

1

Ihre Syntax ist nicht falsch. Die Tabellen, die Sie mit den Spalten x.CommunityRole und z.Role verknüpfen, sind nicht vom selben Typ.

Error CS1941 The type of one of the expressions in the join clause is incorrect. Type inference failed in the call to 'Join'.

Sie haben wahrscheinlich diesen Fehler und Sie müssen Spalten mit gleichen Typen zum Beispiel verbinden int und int. Überprüfen Sie, dass beide gleich sein müssen.

+0

Vielen Dank für Ihre Hilfe, wie sich herausstellte, hatte ich die CommunityRole-Daten bereits im Entity-Framework im Modell, weil ich einen Fremdschlüssel-Contraint erstellt hatte. Als ich ihn geladen hatte, gab es eine Sammlung von CommunityRoles auf den CommunityTeams, die ich ziehen konnte aus dem Modell, so dass kein Beitritt erforderlich war. –