Используя LINQ и Entity, как мне вернуть значения отношения многие ко многим - PullRequest
1 голос
/ 21 ноября 2010

У меня есть две сущности: Учетная запись и Подписка, между которыми существует связь «многие ко многим».Кажется, я нигде не могу найти в руководствах, как сделать следующее:

Я хочу найти все учетные записи с подпиской типа x.Если бы я не использовал платформу Entity, я мог бы присоединиться к таблице AccountSubscription, но она не доступна через Entity.Нужно ли создавать специальную сущность, если мне нужно запросить отношение «многие ко многим»?

Ответы [ 2 ]

3 голосов
/ 21 ноября 2010

EF должен создать свойство навигации для отношения «многие ко многим».Тогда вы сможете сделать что-то вроде этого:

var accounts = from a in Accounts
               where a.Subscriptions.Any(s => s.SubscriptionType == "something")
               select a;

Например, у меня есть простой БД с отношением многие ко многим между продуктами и группами: alt text

И EFсоздает ассоциацию в модели: alt text

Таким образом, я могу создать такой запрос (здесь, включая группы, чтобы я мог увидеть категорию):

alt text

0 голосов
/ 21 ноября 2010

Что-то вроде этого:

List<Accounts> myAccounts = //get accounts;

foreach(Accounts a in myAccounts)
{
  foreach(Subscriptions s in a)
  {
     //add it to a global list?
  } 
}
...