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

使用API带Where条件查询数据库匹配数组内SN值的实现问题

解决方案

你可以直接使用LINQ的Contains方法实现数组匹配,EF Core/EF6 会自动将该方法翻译为SQL的IN查询语法,符合你筛选SN在指定数组内的需求。


修改后的完整代码

public class SNController : ApiController
{
    [HttpGet]
    public HttpResponseMessage AllSN()
    {
        using (SNDBContext dbContext = new SNDBContext())
        {
            string[] SNum = { "01070A2", "01070A3", "01070A4" };
            // 仅修改Where条件即可
            var SerialNum = dbContext.SNumbers.Where(x => SNum.Contains(x.SN))
                                  .Select(p => new { p.Name, p.Status})
                                  .ToList();
            
            return Request.CreateResponse(HttpStatusCode.OK, SerialNum );
        }
    }
}

注意事项

如果你的SNum数组是动态生成的,建议提前判断数组是否为空,避免生成IN ()这类非法SQL语句引发报错,示例判断逻辑如下:

if(!SNum.Any())
{
    // 数组为空时按需返回空列表或者执行其他业务逻辑
    return Request.CreateResponse(HttpStatusCode.OK, Enumerable.Empty<object>());
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 08:54:05