DBContext、DBSet查询和无跟踪选项

6
根据其他帖子,例如Entity Framework and DbContext - Object Tracking,简化的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);
    }
1个回答

8

AsNoTracking 是 IQueryable 的扩展。

你可以使用以下代码更新你的函数:

public virtual IQueryable<T> GetList(Expression<Func<T, bool>> predicate)
    {
         return EntityDbSet.Where(predicate).AsNoTracking();
    }

运行良好。在这里,我相信它没有暴露在dbset上。我正在寻找错误的选项。谢谢Mark。 - phil soady
请注意:https://dev59.com/OlXTa4cB1Zd3GeqP4sTQ - phil soady

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接