为什么String.Contains在此查询中不区分大小写?

Mat*_*hew 5 .net c# linq asp.net-mvc asp.net-mvc-4

我正在通过这个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); 
}
Run Code Online (Sandbox Code Playgroud)

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

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

Art*_*ess 15

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

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