1

MSSQL サーバーに "Name nvarchar(10)" フィールドを持つテーブルがあり、データを検索しようとしていますが、大文字と小文字を区別して検索できません。すなわち

 this.SomeTable.SingleOrDefault(u => (u.Name==login));

また

 this.PortalUsers.SingleOrDefault(u => (u.Name.Equals(login))

"aaaa"!="AAAA" であるため、値を返しますが、そうすべきではありません。データベースのセルの照合順序を変更せずにどのように修正できますか?

4

1 に答える 1

0

優れた解決策ではありませんが、MSSQL サーバーを変更できない場合は制限があります。

試す

 this.PortalUsers.Where(u => u.Name == login).ToList().SingleOrDefault(u => u.Name == login)

これにより、大文字と小文字に関係なく一致するすべてのレコードが取得され、メモリ内配列に変換されてから、大文字と小文字が区別される一致に基づいて単一のレコードが選択されます。

ただし、これは優れたソリューションではありません。メモリ内に作成する必要があるかなりの数のレコードが返される可能性があり、それほど高価ではありませんが、注意が必要です。

于 2012-09-10T12:12:22.387 に答える