Где условие не работает в Join - PullRequest
0 голосов
/ 07 мая 2018

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

var query = from au in db.Users
                     join auc in db.UserRoles.Where(ac => !ac.Role.Contains("Supplier"))
                     on au.UserName equals auc.UserName
                     into g
                     from ab in g.DefaultIfEmpty()
                     select new { UserName = au.UserName };

Я хочу, чтобы все UserNames из Users таблицы не имели роли Supplier в UserRoles таблице. Где условие не работает в выражении. И User, и UserRoles - это разные таблицы без каких-либо отношений

Спасибо в Adv

1 Ответ

0 голосов
/ 07 мая 2018

Моя концепция заключается в том, что вам нужно добавить

where ab == null

Однако я бы написал так, чтобы мне не пришлось беспокоиться о поведении объединения (дублирование и т. Д.)

IQueryable<string> query =
  from au in db.Users
  where !au.UserRoles.Any(ur => ur.Role.Contains("Supplier"))
  select au.UserName;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...