EF Core 2.1 - 验证数据库是否存在在更新后不起作用

时间:2018-06-04 13:48:21

标签: c# entity-framework-core npgsql

在将NPGSQL从2.0升级到2.1之前,此代码运行良好。

public static void EnsurePopulated(IApplicationBuilder app)
{
    CoreDatabaseContext context = app.ApplicationServices.GetRequiredService<CoreDatabaseContext>();
    bool databaseExists  = (context.Database.GetService<IDatabaseCreator>() as RelationalDatabaseCreator).Exists();

    //Don't work too
    //bool databaseExists  = context.Database.EnsureCreated(); 
}

更新后我收到错误:

  

System.MissingMethodException:&#39;找不到方法:   &#39; Microsoft.EntityFrameworkCore.DbContextOptionsBuilder   Microsoft.EntityFrameworkCore.NpgsqlDbContextOptionsExtensions.UseNpgsql(Microsoft.EntityFrameworkCore.DbContextOptionsBuilder,   System.String,   System.Action`1)&#39;&#39;

VS2017 15.7.0 .NET 4.7.2 Npgsql.EntityFrameworkCore.PostgreSQL 2.1 .NET Core 2.1.300

1 个答案:

答案 0 :(得分:1)

您安装了最新的2.1 SDK吗?你是如何运行你的应用程序的?当您运行dotnet --version时,它会显示2.1.300吗?您是否安装了最新版本的VS 2017?

当您遇到不匹配/不兼容的dll版本时,通常会发生这些异常。如果您更新了所有内容,请清除bin / obj文件夹,它应该可以正常工作。