gpt4 book ai didi

servicestack - OrmLite/MySql/SqlExpressionVisitor - 需要 "like"子句

转载 作者:行者123 更新时间:2023-12-04 12:42:10 25 4
gpt4 key购买 nike

我是 LINQ 和 OrmLite/MySql 的新手。我有一个需要产生 where 子句的服务请求参数:

`Name` LIKE '%something%' OR `Name` LIKE '%something%else%'

我知道我可以创建一个 IN()=条款,通过:

ev.Where(rn => Sql.In(rn.Name, request.Name));  // Assuming an array here
ev.Where(rn => rn.Name== request.Name));

但我似乎无法找到一个能让我建立一个 LIKE 的结构。 .另外, Name实际上是一个别名,所以我试图避免手动构建 where 子句。

最佳答案

您可以使用 Contains 构建该特定示例, IE:

ev.Where(rn => rn.Contains(rn.Name, "something") 
|| rn.Contains(rn.Name, "something%else"));
StartsWithEndsWith一般用于LINQ生成 LIKE仅在一端带有通配符的子句(但确实出现了 MySql 方言定义 StartsWith 有点 differently ,可能是为了提高效率。)

您可以检查默认方言 source code确认为 EndsWith 生成了什么和 Contains .

关于servicestack - OrmLite/MySql/SqlExpressionVisitor - 需要 "like"子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12921779/

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