Конвертировать Linq To Sql с JOIN в IQueryable выберите - PullRequest
0 голосов
/ 04 июля 2010

У меня есть функция с именем GetUserByOpenId Я вообще не хочу использовать эту функцию

    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

Что я действительно хочу сделать, так это использовать мойФункция «GetUsers» (IQueryable) и выполнение JOIN в моем слое обслуживания.

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

Кто-нибудь может сказать мне, как будет выглядеть метод для возврата подходящих данных с использованием функции, аналогичной этой

    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

1 Ответ

0 голосов
/ 04 июля 2010

Хм, похоже, у вас должны быть отношения FK между OpenID и пользователями, но это не так.Если вы создадите это отношение, вы сможете легко обойти его через свойство и вообще не выполнять запросы (кроме простого Где).

...