Ошибка EF Core DbContext в AKS, но не локально в контейнере - PullRequest
1 голос
/ 12 апреля 2019

У меня есть простое консольное приложение, которое обновляет базу данных (база данных размещается в Azure). Я вручную настраиваю DbContext следующим образом:

var options = new Microsoft.EntityFrameworkCore.DbContextOptions<MyContext>();            
var myContext = new MyContext(options);         
var myRepository = new MyRepository(myContext);

MyContext выглядит так:

public class MyContext : DbContext, IMyContext
{
    public MyContext(DbContextOptions<MyContext> options) : base(options) { }
    public DbSet<MyEntity> MyData { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer( ... );
    }
}

Я компилирую это и запускаю внутри контейнера локально, и он работает нормально. Однако, как только я добавляю образ в кластер AKS, я получаю следующую ошибку:

Необработанное исключение: System.InvalidOperationException: Нет базы данных провайдер был настроен для этого DbContext. Поставщик может быть настраивается путем переопределения метода DbContext.OnConfiguring или используя AddDbContext в сервис-провайдере приложений. Если AddDbContext используется, а затем убедитесь, что ваш тип DbContext принимает объект DbContextOptions в своем конструкторе и передает его в базовый конструктор для DbContext. в Microsoft.EntityFrameworkCore.Internal.DbContextServices.Initialize (IServiceProvider scopedProvider, IDbContextOptions contextOptions, контекст DbContext)
в Microsoft.EntityFrameworkCore.DbContext.get_InternalServiceProvider () в Microsoft.EntityFrameworkCore.DbContext.get_DbContextDependencies () в Microsoft.EntityFrameworkCore.DbContext.EntryWithoutDetectChanges (Объект субъект) в Microsoft.EntityFrameworkCore.DbContext.SetEntityState (объектный объект, EntityState entityState) в Microsoft.EntityFrameworkCore.DbContext.Add (объектная сущность) в

Насколько я вижу, я сделал именно то, что он предлагает; хотя то, что я действительно не понимаю, почему внутри АКС ведет себя по-разному. Кто-нибудь может пролить свет на это для меня, пожалуйста?

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