You need to enable JavaScript to run this app. ASP.NET中Lambda表达式如何传递多参数实现多条件查询
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET中Lambda表达式如何传递多参数实现多条件查询

多条件筛选实现方案

你不需要给Lambda表达式传入多个参数,Single方法接收的谓词本身就是一个接收单个实体参数、返回布尔值的委托,直接在返回表达式中拼接多个筛选条件即可。

固定多条件写法

直接用逻辑与&&拼接ItemId和LocationId的相等判断,修改后的代码如下:

var itemInventoryUpdate2 = db.ItemInventoryDatas
     .Single(items => items.ItemId == item.ItemId && items.LocationId == item.LocationId);

注意事项

  • &&为短路逻辑与,要求两个条件必须同时满足,等价于SQL查询中的AND逻辑
  • 如果不想让无匹配结果时Single抛出异常,可将其替换为SingleOrDefault,无匹配时返回类型默认值(通常为null)
  • 需要追加更多固定筛选条件时,直接继续用&&向后拼接判断逻辑即可,比如追加库存状态判断:&& items.StockStatus == 有效状态值

动态条件扩展写法

如果LocationId是可选筛选条件(即仅当传入有效LocationId时才需要筛选),使用链式Where拼接逻辑更灵活,示例代码:

var query = db.ItemInventoryDatas.Where(items => items.ItemId == item.ItemId);
// 仅当LocationId有有效值时追加筛选规则
if (item.LocationId != Guid.Empty) // 非空判断逻辑根据你使用的ID类型调整,比如int类型可写 > 0
{
    query = query.Where(items => items.LocationId == item.LocationId);
}
var itemInventoryUpdate2 = query.Single();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.30 12:36:05