2017-10-09 2 views
2

Je suis en train de mettre en œuvre un référentiel générique tel que décrit dans https://codingblast.com/entity-framework-core-generic-repository/EF Core 2.0 DbSet générique ne possède pas la méthode AsNoTracking

Il semble que le DbSet générique n'a pas implemention pour la méthode AsNoTracking(), je ne suis pas en utilisant la syntaxe correcte? Comment résoudre ce problème

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(); 
    } 

    } 
+1

'AsNoTracking' est l'extension * * méthode et nécessite l'utilisation' Microsoft.EntityFrameworkCore; '. Mais 'DbContext' est défini dans le même espace de noms, la méthode en question doit donc être disponible. –

Répondre

0

Il n'y a rien à réparer ici. La méthode
AsNoTracking ne configure la requête que d'une manière telle que, une fois énumérée, elle ne suivra pas les modifications sur ces entités. Ceci est utile lorsque vous êtes en lecture seule et n'effectue aucune modification dans cette procédure. C'est fait pour la vitesse et l'efficacité. La méthode n'a donc aucune fonctionnalité pouvant être asynchrone.

Vous utiliserez les méthodes Async lors de l'énumération requête, comme:
ToListAsync() ou
SingleOrDefaultAsync()