LINQ Query через ассоциации

У меня есть Entity Framework, который генерируется из моей базы данных. В этой базе данных находится таблица с именем User_Security_Role, которая состоит из двух полей: Employee_ID и User_Name. Оба поля действуют как его первичные ключи и также являются внешними ключами. Поля взяты из двух таблиц Sytem_Role (с Role_ID в качестве PK) и User_Identity (с User_Name в качестве PK). Когда файл.edmx генерируется, таблица User_Security_Role генерируется не как таблица, а как набор связей между двумя сущностями: System_Role и User_Identity.

Я хотел бы запросить EF с запросом:

var usr = from u in _imEntities.User_Security_Role
          where u.Role_ID == 3
          select u.User_Name;

Тем не менее, "User_Security_Role" не отображается как сущность в наборе сущностей, и я не уверен, как запросить его сейчас, когда это набор ассоциации. Как я могу написать запрос linq для выбора данных из ассоциации, а не объекта?

1 ответ

Решение

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

var usr = From u in _imEntities.User_Identities
          where u.Roles.Any(r => r.Role_ID == 3)
          select u;

ИЛИ ЖЕ

var usr = from r in _imEntities.System_Roles
          where r.Role_ID == 3
          from u in r.UserSecurities
          select u;
Другие вопросы по тегам