EF Core DbContext在AKS中出错,但不在容器本地

时间:2019-04-12 07:34:00

标签: c# azure entity-framework-core

我有一个简单的控制台应用程序,用于更新数据库(Db托管在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(Object   实体)   Microsoft.EntityFrameworkCore.DbContext.SetEntityState(对象实体,   EntityState实体状态)位于   Microsoft.EntityFrameworkCore.DbContext.Add(对象实体)位于

据我所知,我已经完全按照建议进行了操作;尽管我真的不明白,但为什么它在AKS中的行为会有所不同。有人可以帮我一下吗?

0 个答案:

没有答案