You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC控制器中如何查询所有user_id并排除指定用户ID?

LINQ实现NOT IN过滤用户ID方案

直接在数据库查询阶段加过滤条件即可,不要先全量查询再到内存过滤,避免不必要的性能损耗,用LINQ的Contains方法反向判断就能实现user_id not in (1,2,3)的效果。

修改后的完整控制器代码:

public ActionResult Index()
{
    // 待排除的用户ID列表,可根据业务动态调整
    var excludedIds = new List<int> { 1, 2, 3 };
    var users = _context.sys_users
        // 过滤条件写在ToList()之前,会被EF翻译成SQL在数据库执行
        .Where(u => !excludedIds.Contains(u.user_id))
        .ToList();
    return View(users);
}

补充说明

  • 上述写法EF生成的SQL语句会自动匹配NOT IN语法,和你预期的查询逻辑完全一致
  • 如果你不需要完整的用户实体,只需要拿到符合条件的user_id集合,可以加投影进一步优化查询性能,示例代码如下:
var validUserIds = _context.sys_users
    .Where(u => !excludedIds.Contains(u.user_id))
    .Select(u => u.user_id)
    .ToList();
  • 待排除的ID列表不需要硬编码,可以从配置文件、接口参数、其他业务查询结果中动态赋值,适配不同的业务场景。

内容的提问来源于stack exchange,提问作者MarwanAbu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 13:42:05