【发布时间】:2016-03-08 21:19:13
【问题描述】:
我有一个 SQL 查询(存储过程),我很难尝试使用“NOT IN”在 Linq 中编写。
这是 SQL 查询:
ALTER PROCEDURE [dbo].[spGetAvailableRoles2User]
@Id nvarchar(128)
AS
BEGIN
SET NOCOUNT ON;
SELECT name
FROM Role
WHERE name NOT IN (SELECT t3.Name
FROM [User] t1
JOIN [UserRole] t2 ON t1.Id = t2.UserId
JOIN [Role] t3 ON t2.RoleId = t3.RoleId
WHERE t1.Id = @Id)
END
这就是我在 MVC 操作方法中尝试做的事情
var result = (from x in db.Users
join y in db.IdentityUserRoles on x.Id equals y.UserId
join z in db.Roles on y.RoleId equals z.Id
where x.Id == id
select z.Name);
能否解释一下我做错了什么?
【问题讨论】:
-
我看过了,但我有两个 where 子句,不知道如何用这两个子句编写它
-
@PsyChotic,
Where条件的数量并不重要!
标签: c# sql-server linq-to-entities