【问题标题】:Why is String.Contains case-insensitive in this query?为什么 String.Contains 在此查询中不区分大小写?
【发布时间】:2013-02-02 20:38:11
【问题描述】:

我正在努力通过this ASP MVC tutorial。本教程的这一页涉及编写一个简单的“搜索”页面。控制器包含这个方法:

public ActionResult SearchIndex(string searchString) 
{           
     var movies = from m in db.Movies 
                  select m; 

    if (!String.IsNullOrEmpty(searchString)) 
    { 
        movies = movies.Where(s => s.Title.Contains(searchString)); 
    } 

    return View(movies); 
}

根据 MSDN,String.Contains 区分大小写。但是当我导航到[website url]/Movies/SearchIndex?searchString=mel 时,它会返回一个标题为Melancholia 的电影。如果我在调试器中检查控制器方法,searchStringmel(小写)。

为什么String.Contains 匹配这个标题不区分大小写?

【问题讨论】:

    标签: c# .net asp.net-mvc linq asp.net-mvc-4


    【解决方案1】:

    当使用Linq to entities 时,查询由 SQL Server 完成。您的 Lambda 表达式将转换为 SQL 查询,因此是否区分大小写取决于服务器配置。

    如果您想更改 SQL Server 排序规则并使其区分大小写,请参阅此页面: http://blog.sqlauthority.com/2007/04/30/case-sensitive-sql-query-search/

    【讨论】:

      猜你喜欢
      • 2013-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-01
      • 1970-01-01
      相关资源
      最近更新 更多