LINQ-Join mit mehreren UND-Bedingungen
Möchte ich an zwei Personen in meinem MVC-Anwendung für die Verarbeitung von Daten durch die LINQ beitreten.
Dafür bin ich zu schreiben versucht, die Abfrage wie
from enumeration in db.Enumerations
join cust in db.Customers on ( enumeration.Value equals cust.lkpStatus &&
enumeration.EnumerationTypeID.Contains('Cust')
Aber ich bin immer Problem mit dieser Abfrage, So geben Sie mir bitte einen Vorschlag machen.
InformationsquelleAutor Rahul_RJ | 2013-11-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Probieren Sie diese Lösung:
Nein, in diesem Fall verwenden Sie diese Lösung: aus der Aufzählung in db.Enumerationen.Where(x=>x.EnumerationTypeID.Equals("Kunden.lkpStatus")) join-cust in db.Kunden.Where(c => c.ID == data) auf die Aufzählung.Wert entspricht cust.lkpStatus wählen Sie enumeration;
Aber in diesem Fall ist es nicht in der Lage, das zu tun nicht beitreten, Da "enumeration.Wert" ist ein string, Während "cust.lkpStatus" ist ein int-Wert.
Ich dachte enumeration.Wert ist ein int-Wert. Wie wollen Sie Tabellen verknüpfen, in einem der Felder ist nicht FK/PK!?
Ich habe versucht, so etwas wie dieses-------------------------- var temp= (von der Aufzählung in db.Enumerationen join cust in db.Kunden Konvertieren.ToInt32(Aufzählung.Wert) entspricht cust.lkpStatus wo (cust.ID==data.ID && enumeration.EnumerationTypeID.Enthält("Kunde.lkpStatus") ) wählen Sie Aufzählung).FirstOrDefault(); ------------------------------------------- Aber es ist auch nicht richtig funktioniert
InformationsquelleAutor alexmac
Join gemacht werden sollte, wie diese:
bitte zeigen Sie Ihren code
IEnumerable<UserDropDownSearch> model = Benutzer aus _db.Benutzer beitreten groupMembers in _db.GroupMembers auf neue { Benutzer.User_id } gleich neue { groupMembers.User_id } Beide Fälle ist lang
Wenn das ein konkurrieren code, als Sie vermissen
select
in Ihre LINQ-Abfrage. Wenn nicht, poste bitte die komplette LINQ-Abfrage.Ich glaube, dass das problem ist, dass
User_Id
Eigenschaft aufGroupMembers
ist der Typlong?
währendUser_id
aufUsers
ist der Typlong
. Das verhindert, dass innere Verknüpfung von arbeiten und Ihr Fall ist ein outer-join. Wie ich sehe, Sie möchten erhalten Benutzer, die nicht in einer Gruppe. Einfachste Weg, es zu tun zu schaffen, ist in DB-Fremdschlüssel zwischen Benutzer und GroupMembers und lassen Sie die Eigenschaft Gruppen auf Benutzer-Objekt-handle Referenz auf einen Gruppen-Nutzer beteiligt. So finden Benutzer ohne Gruppen alles, was Sie haben, zu schreiben ist:var users = db.Users.Where(u => !u.Groups.Any())
InformationsquelleAutor IDeveloper
?
where
hat eine innere Verknüpfung und schließt Ergebnisse, wobei die zweite Spalte NULL ist.InformationsquelleAutor praga2050
Dies funktioniert
InformationsquelleAutor user10921782