LazyLoadEnabled = false
コンフィグレーションなしのエンティティフレームワーク6を使用しています。私のプロジェクトでUnitOfworkリポジトリパターンを使用しています。 私は約5つのテーブルとの外部キー関係を持つテーブルに約150,000のレコードを持っています。今、私の要件は、私が最初に私はいくつかの基本的なフィルタを適用した後、正確なカウントを取得(のisActiveなどを、ユーザーが作成した)以下のようにするために、この表を照会しています、そのpagination.Forサーバ側を実装する必要がある。その後、OutOfMemory Where句の例外
public long Count(Func<TEntity,bool> where)
{
return DbSet.Where(where).Count();
}
Iいくつかの検索文字列フィルタを適用し、以下のようないくつかの外国の参照が含まれています:
public IQueryable<TEntity> GetWithInclude(Expression<Func<TEntity, bool>> predicate, params string[] include)
{
IQueryable<TEntity> query = this.DbSet;
query = include.Aggregate(query, (current, inc) => current.Include(inc));
return query.Where(predicate);
}
が、私はWhere
句を使用しているので、両方の方法で、私はOutOfMemory exception
を取得しています。親切にもこの問題を取り除く手助けをしてください。