为什么是字符串.此查询中包含不区分大小写的内容

本文关键字:大小写 包含不 字符串 查询 为什么 | 更新日期: 2023-09-27 17:57:33

我正在学习本ASP MVC教程。本教程的这一页介绍如何编写一个简单的"搜索"页面。控制器包含以下方法:

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的电影。如果我在调试器中检查控制器方法,那么searchString就是预期的mel(小写)。

为什么String.Contains不敏感地匹配此标题大小写?

为什么是字符串.此查询中包含不区分大小写的内容

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

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