在Blazor项目中,单元工作的数据永远不会从数据库中获取,这是因为单元工作缓存了所有数据以进行更快的读写操作。要从数据库中获取最新的数据,可以使用以下代码示例:
public interface IRepository
public class Repository
public Repository(DbContext dbContext)
{
_dbContext = dbContext;
}
public async Task GetById(int id)
{
return await _dbContext.Set().FindAsync(id);
}
public async Task> GetAll()
{
return await _dbContext.Set().ToListAsync();
}
public async Task Add(TEntity entity)
{
await _dbContext.Set().AddAsync(entity);
}
public Task Update(TEntity entity)
{
_dbContext.Entry(entity).State = EntityState.Modified;
return Task.CompletedTask;
}
public Task Delete(TEntity entity)
{
_dbContext.Set().Remove(entity);
return Task.CompletedTask;
}
}
services.AddScoped(typeof(IRepository<>), typeof(Repository<>));
@inject IRepository
var customers = await CustomerRepository.GetAll().ToListAsync();
通过以上代码,您就可以从数据库中获取最新数据,而不必一直使用缓存数据。