J'ai une fonction appelée GetUserByOpenId
Je ne veux pas être utiliser cette fonction toutConvertir sql avec Linq JOIN pour sélectionner IQueryable
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
Ce que je veux vraiment être en mesure de faire est d'utiliser ma fonction "GetUsers" (IQueryable) et faire le JOIN dans ma couche de service.
Public Function GetUsers() As IQueryable(Of User) Implements IUserRepository.GetUsers
Dim users = (From u In dc.Users
Select u)
Return users.AsQueryable
End Function
Quelqu'un peut-il me dire ce que la méthode ressembleraient pour renvoyer les données appropraite en utilisant une fonction similaire à ce
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
Il existe une relation entre OpenIds et les utilisateurs dans le concepteur DBML (et le serveur SQL). –
alors vous devriez avoir une propriété OpenID sur votre objet utilisateur que vous pouvez facilement traverser. Dans la plupart des cas, vous n'avez pas besoin de jointures dans le code .NET car les relations entre les objets sont représentées sous la forme d'un graphe d'objet (références membres). – Stilgar
Oui, cela fonctionne en utilisant l'objet OpenId, merci. –