Reputation: 47387
I'm using .NET 4 and I'm just wondering if there is an optimized way of achieving the following.
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
Upvotes: 0
Views: 607
Reputation: 3320
Dim user = dc.OpenIDs
.Where(o => o.ClaimedIdentifier == claimedidentifier)
.Select(o => o.User)
I'm partial to lambdas, myself...
Upvotes: 0
Reputation: 245429
Assuming that all users have a matching ID in OpenIDs:
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()
Upvotes: 1