LINQ to Entities における大文字と小文字の区別の比較の詳細な説明
次の LINQ to Entities クエリ:
<code class="language-c#">Thingies.First(t => t.Name == "ThingamaBob");</code>
LINQ to Entities はラムダ式を SQL ステートメントに変換するため、大文字と小文字を区別する比較は実行されません。 SQL Server によってデフォルトで使用される SQL_Latin1_General_CP1_CI_AS 照合順序では、大文字と小文字が区別されません。
サーバー側ソリューション
大文字と小文字を区別した比較を有効にするには、次の SQL コマンドを使用して、Thingies テーブルの Name 列の照合順序を COLLATE Latin1_General_CS_AS に変更します。
<code class="language-sql">ALTER TABLE Thingies ALTER COLUMN Name VARCHAR(25) COLLATE Latin1_General_CS_AS</code>
クライアント ソリューション
代わりに、LINQ to Objects を使用して大文字と小文字を区別した比較を実行することもできますが、これは効率が低くなります。
<code class="language-c#">Thingies.Where(t => t.Name == "ThingamaBob") .AsEnumerable() .First(t => t.Name == "ThingamaBob");</code>
以上がLINQ to Entities で大文字と小文字を区別した比較を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。