gpt4 book ai didi

c# - Linq To SQL 包含

转载 作者:行者123 更新时间:2023-11-30 21:05:35 24 4
gpt4 key购买 nike

如何将此 SQL 语句转换为 LINQ:

SELECT     [Content].[Content], [Content].ListOrder, [Content].ContentTypeId,        
[Content].ContentId
FROM [Content] INNER JOIN
GroupContentPermission ON [Content].ContentId = GroupContentPermission.ContentId
WHERE GroupContentPermission.GroupId IN
(SELECT GroupId FROM GroupUser WHERE GroupUser.UserId = 169)

最佳答案

LINQ 的转换通常非常简单,除了您的查询中的一个特殊技巧。您可以以自然的方式翻译您的 select、where 和 from 语句,如下所示。但是在 IN 语句的情况下,您必须首先从内部子查询中获取结果,然后检查内部子查询是否.Contains 您要检查的值。

var groups =
(from gu in GroupUser
where gu.UserId == 169
select gu.GroupId).ToList();

var result =
from p in GroupContentPermission
join c in Content on p.ContentId equals c.ContentId
where groups.Contains(p.GroupId)
select new { c.Content, c.ListOrder, c.ContentTypeID, c.ContentId };

// result should contain the same results as the SQL query

这里还有一些您可能会觉得有用的其他资源(如果您进行快速的 google 搜索,您可以找到更多关于 LINQ 的资源和教程。确实有数千):

关于c# - Linq To SQL 包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11620661/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com