所以我有一個EmployeeScheduleRoles表,包含ID,僱員,ScheduleID,角色ID需要將此子查詢更改爲連接? (LINQ/T-SQL/EF)
作爲一個說明,角色ID == 1意味着你這個時間表的管理員(經理) 。 我硬編碼經理的ID是15921
現在,我們把這個經理有司法管轄權
var schedList1 = (
from esr in dbcontext.EmployeeScheduleRoles
where esr.EmployeeID == 15921 && esr.RoleID == 1
select esr);
從這裏的時間表,我搶這些安排之內的所有員工
var EmployeeScheduleRoles =
(from esr in dbcontext.EmployeeScheduleRoles
join s in schedList1 on esr.ScheduleID equals s.ScheduleID
select esr)
我曾希望能推遲第一次,並讓第二次執行。它這樣做,但它作爲子查詢「分開」運行。
我試過做一些內部連接一次完成這一切,但我迷路了。
所需的輸出:
EmployeeID ScheduleID RoleID
15921 1241 1
15927 1241 2
15948 1241 2
15949 1241 2
15950 1241 2
15951 1241 2
15952 1241 2
15953 1241 2
15954 1241 2
15955 1241 2
15956 1241 2
15957 1241 2
15958 1241 2
15959 1241 2
15960 1241 2
15961 1241 2
15962 1241 2
17822 1241 2
18026 1241 2
18027 1241 2
18028 1241 2
在這種特殊情況下,注意,此帳戶的一個時間表(經理的管轄範圍內)
編輯:我想要「schedList1」擺脫完全並將其替換爲一個連接。
以下是功能性的,但我想強制這發生在一個查詢中,如果可能的話,而不是主查詢和子查詢。
from esr in dbcontext.EmployeeScheduleRoles
join s in
(from esr in dbcontext.EmployeeScheduleRoles
where esr.EmployeeID == 15921 && esr.RoleID == 1
select esr.ScheduleID)
on esr.ScheduleID equals s
select esr)
你可以通過結合給定的查詢給出確切的輸出嗎?在桌上的隊友 – Manish
它現在在那裏。 – statue