- Published on
ASP.NET Core MVC - EF Core 使用 PostgreSQL
前面的文章 (Ubuntu - 安裝 PostgreSQL) 已經有建立好一個 PostgreSQL,現在要使用 ASP.NET Core MVC 的專案去連結這個 Database
ASP.NET Core MVC 2.2
在 ASP.NET Core MVC 裡面要連結 PostgreSQL 需要使用第三方寫好的元件 Npgsql,而且也有支援在 EF Core 裡面使用
用 nuget 安裝套件
- Npgsql.EntityFrameworkCore.PostgreSQL
- Npgsql.EntityFrameworkCore.PostgreSQL.Design
建立 EF Core 的 AppDbContext,然後有一個 Table 為 User
public class AppDbContext : DbContext
{
public AppDbContext(DbContextOptions<AppDbContext> options)
: base(options)
{
}
public DbSet<User> User { get; set; }
}
public class User
{
public int Id { get; set; }
public string Name { get; set; }
}
- 註冊 AppDbContext 在 Startup.cs 的 ConfigureServices 裡面,options 裡面注意用的是
UseNpgsql
// 為了方便省略了其它程式碼
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<AppDbContext>(options =>
{
options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection"));
});
}
- 新增一個
DefaultConnection
在 appsettings.json
{
"ConnectionStrings": {
"DefaultConnection": "Server=10.211.55.15;Port=5432;Database=mvc;UID=mvc;PWD=mvc"
}
}
- 使用 command 新增一個 EF 的 migrations
dotnet ef migrations add init
- update migrations 到 Database
dotnet ef database update
- 使用其它的 Client 端 (這裡用的是 DataGrip) 查看 Database,有多了兩張 Table