Linq выберите запись родителей / родителей с соответствующими дочерними элементами - PullRequest
0 голосов
/ 28 января 2020

Использование ef core и попытка выбрать родительские элементы в соответствии с критериями дочернего элемента.

Если бы я делал это в sql Я бы

    declare @UserName nvarchar(200)
set @UserName = 'al65272'

declare @ClientId int
set @ClientId = 32

select u.*
from Users u 
inner join ClientUsers cu on u.Id = cu.UserId
where NormalizedUserName = upper(@UserName) and cu.ClientId=@ClientId

Я думал, что мог бы сделать что-то вроде этого:

var userByUserName = _applicationDbContext.Users.FirstOrDefault(x =>
                x.NormalizedUserName == userName.ToUpper() &&
                x.ClientUsers.Contains(new ClientUser {ClientId = client.Id, User = x}));

Но, очевидно, неправильно, так как не верните что-нибудь.

Кто-нибудь может указать мне правильное направление?

1 Ответ

1 голос
/ 28 января 2020

Я думаю, что это будет работать для вас:

var userByUserName = _applicationDbContext.Users.FirstOrDefault(x =>
                x.NormalizedUserName == userName.ToUpper() &&
                x.ClientUsers.Any(c => c.ClientId == client.Id));
...