2009-08-24 6 views
0

エンティティフレームワークを使用しているリポジトリでは、次のメソッドを使用してIListを返します。createqueryを使用してリポジトリを汎用化する

public virtual IList<TEntity> ToList(Func<TEntity, bool> expression) 
{ 
    return Context.CreateQuery<TEntity>("[" + EntitySetName + "]") 
             .Where<TEntity>(expression).ToList(); 
} 

expressionパラメータは私に結果を変更させることができますが、これは私の期待通りではありません。 createqueryが最初に評価されて以来、私のwhereが適用されます。私は2mil以上のテーブルでこれを使用しています。記録。

誰もがメソッドを汎用的に保つ方法を持っていますが、まずすべてのレコードをロードせずに結果をコントロールする能力はありますか?

public virtual IList<TEntity> ToList(Expression<Func<TEntity, bool>> expression) 

注式:

答えて

2

あなたはSQLに変換することができるものに、あなたの引数の型を変更する必要があります。

+0

こんにちはクレイグ、それは動作します!ありがとう! – madC

関連する問題