5

私はこのASPMVCチュートリアルを進めています。チュートリアルのこのページでは、簡単な「検索」ページの作成について説明します。コントローラには次のメソッドが含まれています。

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 に答える