【问题标题】:The translation of String.IndexOf to SQL does not support versions with a StringComparison argumentString.IndexOf 到 SQL 的转换不支持带有 StringComparison 参数的版本
【发布时间】:2012-01-25 09:22:07
【问题描述】:

我有以下代码:

var items = db.Name.Where(x => x.Forename.IndexOf("john", StringComparison.OrdinalIgnoreCase) >= 0).Take(20);

其中dbSystem.Data.Linq.DataContext

这给了我一个可爱的错误:

String.IndexOf 到 SQL 的翻译不支持版本 带有 StringComparison 参数。

我要做的就是将数据库中的字符串与用户输入的字符串进行比较(在上面的示例中硬编码为“john”),但不考虑区分大小写。我将代码基于以下问题Case insensitive 'Contains(string)'

【问题讨论】:

  • 我的猜测是比较将取决于数据库的排序规则。因此,如果您的数据库排序规则不区分大小写,那么比较也不区分大小写。

标签: c# string linq linq-to-sql


【解决方案1】:

这可能会有所帮助:

string test="john";
db.tblUsers.Where (u =>u.Forename.ToLower().Contains((test.ToLower())).Take(20);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-04
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    相关资源
    最近更新 更多