Справка по запросу LINQ - многие ко многим связаны - PullRequest
2 голосов
/ 28 июня 2011

В моей базе данных есть таблица пользователей, таблица рабочей группы и отношение «многие ко многим». Пользователь может принадлежать к одной или нескольким рабочим группам. Я использую платформу сущностей для своего ORM (сначала код EF 4.1).

Пользовательская таблица имеет пользователей:

1,2,3,4,5,6,7,8,9,10

Таблица рабочей группы имеет рабочие группы:

A,B,C, D

В таблице WorkgroupUser есть записи

A1, A2, A3, A4, A5
B1, B3, B5, B7, B9
C2, C4, C6, C8, C10
D1, D2, D3, D9, D10

Я хотел бы сделать следующее: Данный пользователь 4 принадлежит рабочим группам А, С и имеет общих пользователей

1,2,3,4,5 (from workgroup A) and 
2,4,6,8,10 from workgroup C

и общий набор пользователей составляет 1,2,3,4,5,6,8,10

Как мне написать оператор LINQ (желательно в свободном API) для этого?

Спасибо,

1 Ответ

2 голосов
/ 28 июня 2011

Вот общая идея (поскольку я не знаю свойств сущности User и WorkGroup)

var result = context.users.Where(u => u.ID == 4)
                          .SelectMany(u => u.WorkGroups.SelectMany(wg => wg.Users))
                          .Distinct()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...