SQL 的“IN”语句的 LINQ 等效项
在本文中,我们将解决编写模拟 LINQ 查询的任务SQL“IN”语句的行为。此查询将检索与指定标签列表匹配的项目。
想象以下支持项目的数据库架构标记:
商品
标签s
TagMap
问题语句:
编写一个 LINQ 查询,返回与指定标签列表匹配的项目。例如,如果所需的标签是 2、3、4 和 7,则查询应检索带有这些标签的项目。
解决方案:
我们可以使用以下方法实现此目的LINQ 查询:
var TagIds = new[] { 2, 3, 4, 7 }; var q = from map in Context.TagMaps where TagIds.Contains(map.TagId) select map.Items;
查询首先使用所需的标签 ID 初始化整数数组 TagIds。然后,它使用 Contains 方法将 TagMaps 表与该数组连接起来,该方法检查 TagMaps 的 TagId 列是否存在于 TagIds 数组中。
此查询在 SQL 语句中生成参数化的“IN”子句,确保高效执行。它本质上翻译为以下 SQL:
SELECT Items FROM TagMaps WHERE TagId IN (2, 3, 4, 7);
以上是如何使用 LINQ 复制 SQL 的'IN”语句?的详细内容。更多信息请关注PHP中文网其他相关文章!