Konvertieren Sie LINQ to SQL mit zu IQueryable JOIN wählen
-
02-10-2019 - |
Frage
Ich habe eine Funktion namens GetUserByOpenId
Ich will nicht bei allen
Public Function GetUserByOpenID(ByVal claimedidentifier As String) As User Implements IUserRepository.GetUserByOpenID
Dim user = (From u In dc.Users
Join o In dc.OpenIDs On u.ID Equals o.UserID
Where o.ClaimedIdentifier = claimedidentifier
Select u).FirstOrDefault
Return user
End Function
Was will ich wirklich in der Lage sein, verwendet man tun, um meine „GetUsers“ -Funktion (IQueryable) und tut das JOIN in meiner Dienstschicht.
Public Function GetUsers() As IQueryable(Of User) Implements IUserRepository.GetUsers
Dim users = (From u In dc.Users
Select u)
Return users.AsQueryable
End Function
Kann jemand mir sagen, was das Verfahren aussehen würde die appropraite Daten unter Verwendung einer ähnlichen Funktion zu diesem
zurück Public Function GetAllUsers() As System.Collections.Generic.IList(Of User) Implements IUserService.GetAllUsers
Return _UserRepository.GetUsers().Where(Function(u) (Not u.isClosed)).ToList
End Function
Lösung
Hmm es scheint, als ob Sie eine FK Beziehung zwischen OpenID und Benutzer haben sollte, aber sie tun es nicht. Wenn Sie diese Beziehung erstellen können Sie diese leicht über Eigentum zu durchqueren und nicht tun müssen, um überhaupt die Abfrage (außer einem einfachen Wo).
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow