明確にするために、私はEFコールの結果に.Cast<T>
を実行することに言及していません。Entity Frameworkクエリの `Where`部分にキャストする方法はありますか?
私は数値フィールドで部分検索を実装しようとしています。
SQLスクリプトを作成する場合、別のデータ型に列を変換するのは簡単です:
SELECT Id
FROM Employees
WHERE CAST(Id AS VARCHAR) LIKE '%95%';
は、LINQクエリで同等の任意の並べ替えはありますか?
私が照会しているエンティティのデータ型を変更することはできません。Id
はデモンストレーションの目的にすぎません。
を多分[この](http://stackoverflow.com/questions/158634/doing-a-cast-within-a-linq-query)の質問は、あなたがに見えるかもしれません – LeeonTM
お手伝いをすることができます'SqlFunctions'クラスです。これには、LINQプロバイダが直接サポートするいくつかのメソッドがあります。 'Cast'や' Convert'メソッドがあるかどうかはわかりません。 IIRC、それは 'StringConvert'を持っています – Amy
そのSQLクエリは実際にはバグです。あなたがテキスト検索を行うことができるように、ビジネス上の意味を持たないIdを*文字列*に変換する必要がある場合、何かが間違っています。少なくともキャストやワイルドカードによる検索ではインデックスの使用が禁止されているため、テーブル全体をスキャンする必要があります –