Entity framework EF Core 2.0通用数据库集没有方法AsNoTracking

Entity framework EF Core 2.0通用数据库集没有方法AsNoTracking,entity-framework,ef-core-2.0,Entity Framework,Ef Core 2.0,我正在尝试实现中所述的通用存储库 似乎泛型DbSet没有方法AsNoTracking()的实现,我是否使用了正确的语法?如何解决这个问题 public class BaseRepository<TEntity> : IGenericRepository<TEntity> where TEntity : class { private readonly DbContext _dbContext; public BaseRepository(DbCo

我正在尝试实现中所述的通用存储库

似乎泛型DbSet没有方法AsNoTracking()的实现,我是否使用了正确的语法?如何解决这个问题

public class BaseRepository<TEntity> : IGenericRepository<TEntity>
    where TEntity : class
{
    private readonly DbContext _dbContext;
    public BaseRepository(DbContext dbContext)
    {
        _dbContext = dbContext;
    }

    public IQueryable<TEntity> GetAll()
    {
        return _dbContext.Set<TEntity>().AsNoTracking();
    }

   }
公共类基存储库:IGenericRepository
地点:班级
{
私有只读dbcontextu DbContext;
公共基本存储库(DbContext DbContext)
{
_dbContext=dbContext;
}
公共IQueryable GetAll()
{
返回_dbContext.Set().AsNoTracking();
}
}

这里没有什么需要修复的。
AsNoTracking
方法仅以一种方式配置查询,即一旦对其进行枚举,它将不会跟踪这些实体上的更改。 这在执行只读操作时非常有用,并且不会在该过程中进行任何编辑。这样做是为了速度和效率。 因此,该方法没有可以异步的功能

枚举查询时将使用异步方法,如:
ToListAsync()

SingleOrDefaultAsync()

AsNoTracking
是一种扩展方法,需要使用Microsoft.EntityFrameworkCore
。但是
DbContext
是在同一名称空间中定义的,因此您应该可以使用该方法。