3
我需要幫助篩選實體框架(EF)導航 屬性上的LINQ查詢。表格是首先創建的(不是代碼優先)。需要幫助使用實體框架篩選LINQ查詢導航屬性
對於這個問題,我們使用Office中的字符。
假設我有以下表和列:
Offices
Id
Name
Location
Employees
Id
Name
EmployeeTypes
Id
Description
Employees_EmployeeTypes
Id
EmployeeId
EmployeeTypeId
的表有下列數據:
Offices
1 North Branch PA
2 South Branch FL
3 East Branch NY
Employees
1 Jim
2 Pam
3 Oscar
4 Dwight
5 Michael
6 Angela
7 Kevin
8 Stanley
EmployeeTypes
1 Manager
2 Salesman
3 Assistant
4 Receptionist
5 Accountant
Employees_EmployeeTypes
1 1 2
2 2 4
3 3 5
4 4 2
5 5 1
6 6 5
7 7 5
8 8 2
這些表被帶入使用「更新模型從數據庫」 EF 功能在Visual Studio中。
所有實體的名稱都與表名完全相同,實體集是 複數形式。
Entity Name Entity Set Name
Office Offices
Employee Employees
EmployeeType EmployeeTypes
的Employees_EmployeeTypes表是結合表(很多到很多),將 轉化爲EF導航屬性,並命名爲「EmployeeTypes」。這裏是 其用法的例子:
var employeeTypes = dbContext.Employees.Find(1).EmployeeTypes;
現在我們已經設定,讓我們的問題。使用LINQ,我如何 使用導航屬性 「EmployeeTypes」選擇所有屬於銷售員的員工?在SQL它應該是這樣的:
select e.Id, e.Name
from Employees e
join Employees_EmployeeTypes e_et on e_et.EmployeeId = e.Id
join EmployeeTypes et on et.Id = e_et.EmployeeTypeId
where et.Id = 2