я функция называется GetUserByOpenId
Я не хочу, чтобы использовать эту функцию на всехПреобразовать Linq To Sql с JOIN в IQueryable выбрать
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
Может кто-нибудь сказать мне, что метод будет выглядеть, чтобы вернуть appropraite данных, используя аналогичную функцию для этого
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
Существует связь между OpenIds и пользователями в DBML-дизайнере (и sql-сервере). –
, тогда у вас должно быть свойство OpenID на объекте User, с которым вы можете легко пройти. В большинстве случаев вам не нужно присоединяться к .NET-коду, потому что отношения между объектами представляются как граф объектов (ссылки на члены). – Stilgar
Yup, это работает с использованием объекта OpenId, спасибо. –