Я пытался получить доступ к ChangeTracker несколькими разными способами, и каждый раз он выдает эту ошибку.
Этот метод вызывается, когда я переопределяю DbContext.SaveChanges ()
private void OnBeforeSaving()
{
ChangeTracker.DetectChanges();
var entries = ChangeTracker.Entries();
foreach (var entry in entries)
{
if (entry.Entity is IEntityCreatedAt && entry.State == EntityState.Added)
{
var createdEntity = ((IEntityCreatedAt)entry.Entity);
createdEntity.CreatedAt = DateTimeOffset.UtcNow;
}
if (entry.Entity is IEntityModifiedAt && entry.State == EntityState.Modified)
{
var modifiedEntry = ((IEntityModifiedAt)entry.Entity);
modifiedEntry.ModifiedAt = DateTimeOffset.UtcNow;
}
}
}
ошибка происходит, когда эта строка ChangeTracker.DetectChanges ();
An attempt was made to use the model while it was being created. A DbContext instance cannot be used inside OnModelCreating in any way that makes use of the model that is being created.
контекст находится в azure функции v3 и добавляется в контейнер DI как таковой
builder.Services.AddDbContext<CommunicationDbContext>(cfg =>
{
cfg.UseSqlServer(
Environment.GetEnvironmentVariable(
"SStGConnectionString") );
});
Кто-нибудь может мне сказать, почему ChangeTracker всегда выдает ошибку?