ASP.NET Linq To SQL и вложенные выборки - PullRequest
0 голосов
/ 24 июня 2010

Я использую .NET 4, и мне просто интересно, есть ли оптимизированный способ достижения следующего.

    Public Function GetUserByOpenID(ByVal claimedidentifier As String) As User Implements IUserRepository.GetUserByOpenID
        Dim user = (From u In dc.Users
                    Where u.ID = (From o In dc.OpenIDs
                                  Where o.ClaimedIdentifier = claimedidentifier
                                  Select o.UserID).FirstOrDefault
                    Select u)
        Return user
    End Function

Ответы [ 2 ]

1 голос
/ 24 июня 2010

Предполагая, что у всех пользователей совпадают идентификаторы в OpenID:

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()
0 голосов
/ 24 июня 2010
Dim user = dc.OpenIDs
    .Where(o => o.ClaimedIdentifier == claimedidentifier)
    .Select(o => o.User)

Я неравнодушен к лямбдам, сам ...

...