EF Core 3.1 Ошибки отслеживания изменений каждый раз, когда я к нему обращаюсь - PullRequest
0 голосов
/ 24 марта 2020

Я пытался получить доступ к 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 всегда выдает ошибку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...