C # Исключая связанные значения из списка (LINQ) - PullRequest
1 голос
/ 11 января 2009

Существует ли действие, прямо противоположное " join " в linQ to SQL? Я хочу отобразить только те результаты, которые не соответствуют внутреннему ограничению join из запроса. Я хочу сделать это только в одном запросе. Вот пример его использования (http://img165.imageshack.us/img165/4940/liststj3.jpg).

Ответы [ 3 ]

1 голос
/ 11 января 2009

У Билала Хайдара есть объяснение о том, как сделать левое внешнее соединение. Используйте эту стратегию и добавьте условие «где», чтобы проверить, где объект с правой стороны равен нулю.

1 голос
/ 11 января 2009

Роли Фальвареза:

Roles.Where(r => r.Users.Any(u => u.Name == "falvarez"));

Роли, которых нет у Фальвареса

Roles.Where(r => !r.Users.Any(u => u.Name == "falvarez"));

Спроецируйте каждую роль в объект, который знает, есть ли в этой роли фальварез

Roles.Select(r => new
  {
    FalvarezInRole = r.Users.Any(u => u.Name == "falvarez"),
    Role = r
  });

В случае, если у объекта роли нет свойства users, просто замените запрос, который фильтрует пользователей по роли, вместо r.Users

0 голосов
/ 11 января 2009

Проверьте Zip здесь:

http://www.codeplex.com/nextension

РЕДАКТИРОВАТЬ: может быть лучше сделать "где! Collection.Contains (s.ID)" ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...