0

Ms-Sql DB を使用しており、DB に nvarchar 型として保存されているフィールドがあります。次の方法で linq to sql を使用します。

var names = NamesTable.where(n=>n.name.Contains("acções"));

このクエリは、acçoes/accoes またはその他の組み合わせを含む名前を返します。SQLはラテン語の特殊文字を英語の特殊文字とは異なるものとして認識していないようです。

どうすればこの問題を解決できますか?

4

1 に答える 1

2

SqlServer では、列ごとに「照合」を設定できます。通常は(私が思うに)「アクセントを区別する」ですが、あなたのケースは「アクセントを区別しない」ようです。照合の内容を確認してください。「AI」で終わる場合、それは実際にアクセントを区別しません。「Accent Sensitive」には「AS」が必要です。

さらに、「CI」(「大文字と小文字を区別しない」の場合)または「CS」(「大文字と小文字を区別する」の場合)を使用できます。

于 2011-02-09T08:43:20.553 に答える