2017-04-07 9 views
0

Entity Frameworkコアの "Contains"は、%operatorのようなSQL%と同等である必要があります。したがって、 "Contains"は大文字と小文字を区別しませんが、大文字と小文字は区別されます。 (少なくともpostgres ?????)Entity Frameworkコア - 大文字と小文字は区別されますか?

以下は、キーワードの正しいケーシングが使用された場合の結果を出力します。

context.Counties.Where(x => x.Name.Contains(keyword)).ToList(); 

私は間違っていますか?

+2

LIKE **はpostgresqlで大文字と小文字が区別されます。 – Evk

+0

"citext"という拡張があり、大文字小文字を区別しない "citext"型の列を使用できることに注意してください。それ以外の場合は、大文字と小文字を区別しない比較を行うために 'lower'を明示的に使用してください。 postgresqlには 'LIKE'の大文字小文字を区別しないバージョンの' ILIKE'もあります。 – Evk

+0

@Evkは不思議です! – 001

答えて

2

IQueryable.Whereがデータベースで実行されるため、大文字と小文字は区別されません。

IEnumerable.WhereはC#String.Containsを使用しているため、大文字と小文字が区別されます。

回答を読むReturning IEnumerable vs. IQueryable

関連する問題