Linq to Entities を使用した Contains() 関数の回避策
質問:
の使用方法Linq to Entities クエリ内の Contains() 関数はサポートされていませんか?
回答:
更新: Entity Framework 以降 ( EF) バージョン 4 以降では、Contains() が直接サポートされています。
EF の以前のバージョンでは、次の回避策が必要です。
Contains() のカスタム拡張メソッド
次の拡張メソッドを作成します。
<code class="csharp">public static IQueryable<TEntity> WhereIn<TEntity, TValue>( this ObjectQuery<TEntity> query, Expression<Func<TEntity, TValue>> selector, IEnumerable<TValue> collection) { // ... (implementation remains the same as in the provided code) }</code>
オプションの静的コレクション バージョン
オプションで、静的コレクションを許可するバージョンを作成できます。 input:
<code class="csharp">public static IQueryable<TEntity> WhereIn<TEntity, TValue>( this ObjectQuery<TEntity> query, Expression<Func<TEntity, TValue>> selector, params TValue[] collection) { return WhereIn(query, selector, (IEnumerable<TValue>)collection); }</code>
Usage:
この拡張メソッドを使用すると、次のように Linq to Entities クエリで Contains() を使用できます。 >
以上がLinq to Entities で Contains() 関数を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。