首页 > 解决方案 > 如何在不获取计数的情况下检查 db 中是否存在 id 列表并将其与列表计数进行比较

问题描述

我知道这听起来像是一个重复的问题,但我想要的与其他答案略有不同。从技术上讲,我想使用 Linq 将此查询发送到数据库:

Select Count(*) = 3 From Products Where Id in (1,2,3)

请注意,如果所有 id 都存在,则此查询返回 True,如果其中任何一个不存在,则返回 False。这有点像,Products.Exists(p => ids.Contain(p.Id))但所有的 id 都应该存在。

标签: c#.net.net-coreentity-framework-core

解决方案


尝试这个:

int[] ids = new int[] { 1, 3, 9, 11, 125 };
bool res = ids.All(id => Products.Select(p => p.Id).Contains(id));

推荐阅读