linqでエンティティにこのような結果セットを照会しようとしています。 CategoryName
は、データベース内のFor(Upper Case)
あるbecuaseLINQ Toエンティティに大文字小文字の区別が含まれています
var categoriesList = _catRepo.GetAllCategories();
filteredCategories = categoriesList.Where(c=> c.CategoryName.Contains("for"));
しかし、私はどんな結果を得ることはありません。 SQL Serverの照合順序もチェックしてあり、_CI_ASに設定されています。 大文字と小文字を区別しない文字列をフィルタリングするための使い方はありますか? 基本的に誰かのようなタイプの人がいれば欲しいです。
filteredCategories = categoriesList.Where(c=> c.CategoryName.Contains("for"));
OR
filteredCategories = categoriesList.Where(c=> c.CategoryName.Contains("For"));
結果は同じ
これは質問に答えますか? http://stackoverflow.com/questions/3360772/linq-contains-case-insensitive –
それは私のために働いていません –
私はあなたが言う照合で正常に動作すると思います。 'categoriesList'がDBクエリであり、既にメモリリスト内で照会されていないことを確かめます(その場合、式はsqlに変換されません)。また、その時点でdbクエリをトレースすると、どのSQLが生成されていますか? –