У меня есть несколько таблиц и вид:
Таблицы:
- aspnet_Roles
(с RoleId и другими столбцами)
- Status
(с StatusId и другими столбцами)
- RoleStatus
(с RoleId и StatusId и связями)
Когда я создаю файл EDMX Linq To Entities, он создает 2 сущности со свойством Status
List в aspnet_Roles
и списком aspnet_Roles
в Status
.
Пока все хорошо.
Но теперь у меня есть представление с колонкой StatusId
.
Я хочу создать запрос LINQ с соединением между этим представлением и таблицей aspnet_Roles
, чтобы добавить столбец RoleName
в набор результатов.
В SQL это будет что-то вроде:
Select a.*, aspnet_Roles.RoleName From SearchView a
INNER JOIN RoleStatus ON a.StatusId = RoleStatus.StatusId
INNER JOIN aspnet_Roles ON RoleStatus.RoleId = aspnet_Roles.RoleId
Но я не могу найти, как это сделать в LINQ to Entities.
Проблема в том, что у меня никогда нет доступа к RoleId
или StatusId
, так как эти поля "заменены" свойствами списка aspnet_Roles
и Status
.
Итак, я получаю LINQ, например:
from avis in ctx.SearchView
join joinedRoles in ctx.aspnet_Roles
on avis.StatusId equals joinedRoles.Status. (and then what ??)
Поскольку статус - это список, я не могу найти ничего, что соответствует StatusId
.
Я думаю, что делаю что-то неправильно, но я не знаю, где.