在将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
答案 0 :(得分:1)
您安装了最新的2.1 SDK吗?你是如何运行你的应用程序的?当您运行dotnet --version
时,它会显示2.1.300
吗?您是否安装了最新版本的VS 2017?
当您遇到不匹配/不兼容的dll版本时,通常会发生这些异常。如果您更新了所有内容,请清除bin / obj文件夹,它应该可以正常工作。