gpt4 book ai didi

mysql - DapperExtensions 谓词中不区分大小写的比较

转载 作者:行者123 更新时间:2023-11-30 22:12:53 28 4
gpt4 key购买 nike

我在使用 Dapper Extensions 时尝试对 MySQL 表进行不区分大小写的匹配,但是当我尝试在 linq 表达式中将其设为大写时,字段名称出现空异常:

代码如下:

            var predicateGroup = new PredicateGroup { Operator = GroupOperator.Or, Predicates = new List<IPredicate>() };

var term = "term";
if (term.IsNotNullOrEmpty())
{
predicateGroup.Predicates.Add(Predicates.Field<Company>(p => p.company_code, Operator.Like, string.Format("%{0}%", term)));
predicateGroup.Predicates.Add(Predicates.Field<Company>(p => p.company_name.ToUpper(), Operator.Like, string.Format("%{0}%", term)));
}

return Count<Company>(predicateGroup, TdsAuthConnectionString);

有人知道如何使用 DapperExtensions 谓词进行不区分大小写的匹配吗?

感谢您的帮助,代码新手

最佳答案

p => p.company_name片段是 Linq Lambda Expression<Func<T, object>>表达式告诉 DapperExtensions 在其内部映射中使用什么属性名称。当您在那里使用大写字母时,它不是指向有效的属性名称,而是指向大写函数。

如果您正在寻找不区分大小写的数据,这是您的数据库引擎的一项功能。如果您使用的是 Microsoft SQL Server,则数据大小写敏感性由数据库的排序规则控制。如果您使用不区分大小写的代码页,例如 Latin1_General_CI_AS那么您发送到数据库的所有查询都不区分大小写。您可以通过运行以下 SQL 语句来检查服务器排序规则是什么:

SELECT SERVERPROPERTY ('Collation')

您可以找到排序规则及其区分大小写的列表 here

关于mysql - DapperExtensions 谓词中不区分大小写的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39477784/

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