我正在通过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
的电影。如果我在调试器中检查控制器方法,searchString
是mel
(小写),如预期的那样。
为什么String.Contains
不区分大小写匹配此标题?
答案 0 :(得分:15)
使用Linq to entities
时,查询由SQL Server完成。您的Lambda表达式被转换为SQL查询,因此它是否区分大小写取决于服务器配置。
如果您想更改SQL Server排序规则并使其区分大小写,请参阅此页面: http://blog.sqlauthority.com/2007/04/30/case-sensitive-sql-query-search/