Domanda

Ho una funzione chiamata GetUserByOpenId non voglio essere utilizzare questa funzione a tutti

    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

Quello che voglio essere in grado di fare è utilizzare la mia funzione "getusers" (IQueryable) e fare il join nel mio livello di servizio.

    Public Function GetUsers() As IQueryable(Of User) Implements IUserRepository.GetUsers
        Dim users = (From u In dc.Users
                    Select u)
        Return users.AsQueryable
    End Function

Qualcuno può dirmi ciò che il metodo sarà simile per restituire i dati appro-priata utilizzando una funzione simile a questo

    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
È stato utile?

Soluzione

Hmm sembra che si dovrebbe avere un rapporto FK tra OpenIDs e Utenti, ma non è così. Se si crea questo rapporto si sarà in grado di attraversare facilmente tramite proprietà e non hanno a che fare l'interrogazione a tutti (oltre ad un semplice caso).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top