.NET Core 2.1 Npgsql.EntityFrameworkCore.PostgreSQL代码优先

时间:2018-10-18 12:34:56

标签: postgresql .net-core entity-framework-6 entity-framework-core asp.net-core-2.1

我创建了一个项目,在该项目中我想连接到SQLite提供程序以进行测试,并在生产环境中使用PostgreSQL。

protected override void OnConfiguring(DbContextOptionsBuilder opt)
{
 #if DEBUG
  opt.UseSqlite("Data Source=blogging.db");
 #endif
 #if !DEBUG     
  opt.UseNpgsql("Host=localhost;Database=xxxx;Username=xxxxx;Password=xxxxx");
 #endif
}

我想使用代码优先策略。对于SQLite-没问题:

dotnet ef migrations add InitialCreate
dotnet ef database update

总而言之,PostgeSQL(OpenSource)是否有类似的解决方案?

1 个答案:

答案 0 :(得分:0)

正如您所说的,我正在使用postgreSQL。

我使用这2个金块包:

  • Npgsql;
  • Npgsql.EntityFrameworkCore.PostgreSQL

我将其添加到您的Startup.cs-> ConfigureServices:

options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")));

这是appsettings.json

"ConnectionStrings": {

       "DefaultConnection": "Server=localhost;Port=5432;Database=postgresTest;User Id=postgres;Password=xyz;"
 }

然后我仅添加一个迁移并更新数据库:

  1. dotnet ef迁移添加了MigrationTest
  2. dotnet ef数据库更新

然后一切正常。希望对您有所帮助:)