6

EntityFrameworkやDbContext-ObjectTrackingなどの他の投稿に基づくと 、簡略化されたDBContextインターフェイスは、基本的なクエリでトラッキングなしを設定することを公開していないように見えます。オブジェクトコンテキストでの方法を示す小さなブログ http://blogs.microsoft.co.il/blogs/gilf/archive/2009/02/20/disabling-change-tracking-in-entity-framework.aspx

追跡されていないDbContextを介して結果をロードするための良いアプローチは何ですか?Dbcontextを使用する場合、パフォーマンスをどのように意識してこれを実行しますか?つまり、パフォーマンス上の理由から改善したいベースのGetListメソッドがあります。

public DbSet<T> EntityDbSet { get { return _context.Set<T>(); } }
public virtual IQueryable<T> GetList(Expression<Func<T, bool>> predicate)
    {
         return EntityDbSet.Where(predicate);
    }
4

1 に答える 1

8

AsNoTrackingは、IQueryableの拡張機能です 。

上記の関数は次のように更新できます。

public virtual IQueryable<T> GetList(Expression<Func<T, bool>> predicate)
    {
         return EntityDbSet.Where(predicate).AsNoTracking();
    }
于 2012-10-16T18:18:56.297 に答える