2017-04-06 4 views
0

Ich muss drei Tabellen verbinden. Nennen wir sie A, B und C.Beitreten zu zwei Tabellen, aber Wert von Join ändern müssen

Idealerweise muss ich A bis C nach B verbinden

A eine ID enthält. B Enthält AID. Einfach zu verbinden.

Allerdings hat C eine Spalte, in der es wie "00901" aussieht. Ich soll das mit der AID von Tabelle B vergleichen, die "9" ist.

Wohlgemerkt, AID ist ein int, während "00901" varchar ist.

searchResults = db.A 
    .Join(db.B, a => a.ID, b => b.AID, (a, b) => new { a = a, b = b }) 
    .Join(db.C, b => b.b.AID, c => Int32.Parse(c.cID.Substring(0, 3).TrimStart('0')), (b, c) => new { b = b, c = c }) 
    .Select(c => c.).Distinct(); //this line is not complete 

Gedanken, wie kann ich das tun?

+0

Was ist die erforderliche Logik? Basiert es einfach auf dem 3. Zeichen der Spalte in Tabelle B? – juunas

+1

Wie passt man '9' zu' "00901" '? Auch was ist "db", bitte geben Sie den Ziel-ORM-Typ (Abfrage-Provider) an. –

+0

Ivan ist, was die Frage ist. Kann ich einfach einen Teilstring machen und den Wert ändern? – yondaimehokage

Antwort

0

Wir haben uns entschieden, eine Spalte zur Tabelle hinzuzufügen, um das Leben für alle einfacher zu machen. Diese Frage wird also nicht mehr benötigt. Danke für deine Hilfe.