5

我正在学习这个 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。如果我在调试器中检查控制器方法,searchStringmel(小写)符合预期。

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

4

1 回答 1

15

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

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

于 2013-02-02T20:42:53.563 回答