0

我正在使用 .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
4

2 回答 2

1

假设所有用户在 OpenIDs 中都有一个匹配的 ID:

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()
于 2010-06-24T16:01:14.140 回答
0
Dim user = dc.OpenIDs
    .Where(o => o.ClaimedIdentifier == claimedidentifier)
    .Select(o => o.User)

我自己偏爱 lambdas...

于 2010-06-24T16:17:52.680 回答