Дословное преобразование запроса (после удаления родителей в SELECT
)
select UserRoles.RoleID, UserRoles.UserID
from UserRoles
inner Join Roles on Roles.RolesID = UserRoles.RoleID
where Roles.RoleName = 'Seller' AND UserRoles.UserID =1;
Было бы следующее в синтаксисе запроса, против вашего DbContext
, называемого context
(и я принял соглашение по именованию множественного числа по умолчанию DbSets:)
var result = from a in context.UserRoles
join b in context.Roles
on a.RoleID equals b.RoleID
where b.RoleName == "Seller" && a.UserId == 1
select new {b.RoleID, a.UserID};
Где мы объединяем таблицы и проецируем два столбца, которые вы хотели.
Однако, если вы определили свойство навигации UserRole.Role
в своей модели EF, явное объединение не требуется, и было бы намного проще (я перешел на лямбда-синтаксис):
var result = context.UserRoles
.Where(ur => ur.UserID == 1 && ur.Role.Name == "Seller")
.Select(ur => new {ur.RoleID, ur.UserID});
Опять же, проекция только двух столбцов в анонимный класс. Если вы полностью опустите последний оператор Select
, вы получите полный UserRole
экземпляр сущности.