所以我有一个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