1
CREATE TABLE PersonTask
(
PersonId INT NOT NULL,
WeekId INT NOT NULL,
WeekDaysTaskId INT,
WeekEndTaskId INT
)
GO
CREATE TABLE Task
(
Id INT PRIMARY KEY,
[Description] VARCHAR(250) NOT NULL
)
GO
INSERT INTO Task(Id, [Description]) VALUES(1, 'Task-01')
INSERT INTO Task(Id, [Description]) VALUES(2, 'Task-02')
INSERT INTO Task(Id, [Description]) VALUES(3, 'Task-03')
GO
INSERT INTO PersonTask(PersonId, WeekId, WeekDaysTaskId, WeekEndTaskId) VALUES(1, 1, NULL, 1)
INSERT INTO PersonTask(PersonId, WeekId, WeekDaysTaskId, WeekEndTaskId) VALUES(1, 2, 2, NULL)
INSERT INTO PersonTask(PersonId, WeekId, WeekDaysTaskId, WeekEndTaskId) VALUES(1, 3, 3, 3)
GO
SELECT
PT.PersonId,
WeekId,
'Not on Bench' as [Status]
FROM PersonTask AS PT
INNER JOIN Task AS T ON T.Id IN (PT.WeekDaysTaskId, PT.WeekEndTaskId)
WHERE WeekId = 3/*Param-1*/ and PersonId = 1/*Param-2*/
我想写一个相当于上面的T-sql语句,但徒劳的linq查询。有人可以帮忙用C#Linq查询来获取上面的T-SQL语句。LINQ等价语句的SQL内部加入IN语句
好的,你使用EF还是Linq-to-SQL?我不认为你可以使用两者(也许你打算使用'linq-to-entities'标签)。另外,你是否想要将SELECT语句转换为LINQ查询? – IronMan84
@ IronMan84,Linq-To-SQL。 – teenboy