gpt4 book ai didi

linq - 如何编写也可用作 LIKE 运算符的 LINQ IN 子句查询?

转载 作者:行者123 更新时间:2023-12-04 22:49:34 26 4
gpt4 key购买 nike

我们如何为以下 select sql 查询编写 LINQ 查询:

string brandid="1,2,3"
string bodystyleid="1,2,3"
-------------------
-----------------

select * from car
where brandid in (brandid)
and bodystyleid in (brandid)
----------------------
-------------------

我的具体要求是如果brandid或bodystyleid为空(如果用户没有选择
特定搜索选项的任何复选框)查询应返回该特定 where 条件的所有记录。

请指导我。

谢谢,

保罗

最佳答案

为了满足您在未指定任何项目的情况下返回所有项目的要求,您需要检查列表是否为空。

var brands = brandid.Split(',').Select(x => Int32.Parse(x));
var styles = bodystyleid.Split(',').Select(x => Int32.Parse(x));

var result = from c in car
where (!brands.Any() || brands.Contains(c.brandid))
&& (!styles.Any() || styles.Contains(c.bodystyleid))
select c;

(类似于 sgmoore 的解决方案,但包括对未指定品牌/样式的检查)

我实际上并没有检查它是如何转换回 SQL 的 - 使用标志来指示是否有任何值可能更有效:
var brands = ....;   // As above
bool anyBrands = brands.Any()
var result = from c in car
where (!anyBrands || brands.Contains(c.brandid))
.....

关于linq - 如何编写也可用作 LIKE 运算符的 LINQ IN 子句查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10742550/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com