【问题标题】:EF Core 2.0 Generic DbSet does not have method AsNoTrackingEF Core 2.0 Generic DbSet 没有方法 AsNoTracking
【发布时间】:2017-10-09 16:10:20
【问题描述】:

我正在尝试实现一个通用存储库,如 https://codingblast.com/entity-framework-core-generic-repository/

似乎通用 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();
    }

   }

【问题讨论】:

  • AsNoTrackingextension 方法,需要using Microsoft.EntityFrameworkCore;。但是DbContext 是在同一个命名空间中定义的,所以你应该可以使用该方法。

标签: entity-framework ef-core-2.0


【解决方案1】:

这里没有什么可修复的。
AsNoTracking 方法仅以一种一旦被枚举就不会跟踪这些实体的更改的方式配置查询。 这在您进行只读且不会在该过程中进行任何编辑时很有用。这样做是为了速度和效率。 所以该方法没有可以异步的功能。

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

【讨论】:

    猜你喜欢
    • 2017-06-27
    • 1970-01-01
    • 2020-07-01
    • 2017-10-23
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 2021-04-07
    • 1970-01-01
    相关资源
    最近更新 更多