У меня есть этот репозиторий, как вы можете видеть:
public class TestCenterRepository:ITestCenterRepository
{
private readonly PetrolTestCenterDbContext _context;
public TestCenterRepository(PetrolTestCenterDbContext context)
{
this._context = context;
}
public TestCenter GetById(Guid testCenterId)
=> _context.PetrolTestCenters.FirstOrDefault(u => u.Id == testCenterId && u.Deleted == false);
public void Add(TestCenter testCenter)
{
_context.PetrolTestCenters.Add(testCenter);
_context.SaveChanges();
}
}
при вызове функции добавления я получаю эту ошибку:
'The instance of entity type 'TestCenter' cannot be tracked because another instance with the same key value for {'Id'} is already being tracked. When attaching existing entities, ensure that only one entity instance with a given key value is attached. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see the conflicting key values.'
Поэтому я пытаюсь отключить отслеживание в моем контекстекак вы видите:
public class PetrolTestCenterDbContext : DbContext
{
public PetrolTestCenterDbContext(DbContextOptions<PetrolTestCenterDbContext> options) : base(options)
{
ChangeTracker.LazyLoadingEnabled = false;
ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.ApplyConfiguration(new TestCenterConfig());
}
public DbSet<TestCenter> PetrolTestCenters { get; set; }
}
После добавления отключения отслеживания я получаю ту же ошибку.