EF Core如何连接PostgreSQL EF Core连接PostgreSQL教程

星降
发布: 2025-12-16 09:17:03
原创
348人浏览过
EF Core 连接 PostgreSQL 需三步:安装 Npgsql.EntityFrameworkCore.PostgreSQL、Microsoft.EntityFrameworkCore.Tools 和 Microsoft.EntityFrameworkCore.Design 三个 NuGet 包;在 appsettings.json 中配置 PostgreSQL 连接字符串;定义继承 DbContext 的类并在 Program.cs 中通过 AddDbContext 注册,最后执行迁移命令生成数据库。

ef core如何连接postgresql ef core连接postgresql教程

EF Core 连接 PostgreSQL 不难,关键是三步到位:装对包、写对连接字符串、配好 DbContext。下面直接说清楚怎么做,不绕弯。

安装必需的 NuGet 包

缺一不可,建议用 dotnet CLI 命令安装(兼容性更好):

  • Npgsql.EntityFrameworkCore.PostgreSQL:核心驱动,让 EF Core 能跟 PostgreSQL 对话
  • Microsoft.EntityFrameworkCore.Tools:支持迁移命令(dotnet ef migrations add 等)
  • Microsoft.EntityFrameworkCore.Design:设计时支持,生成上下文和实体时需要

执行命令:

dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL<br>dotnet add package Microsoft.EntityFrameworkCore.Tools<br>dotnet add package Microsoft.EntityFrameworkCore.Design
登录后复制

配置连接字符串

推荐放在 appsettings.json 里,结构清晰又方便换环境:

"ConnectionStrings": {<br>  "PgConnection": "Host=localhost;Port=5432;Database=myappdb;Username=postgres;Password=your_password"<br>}
登录后复制

注意点:

  • 默认端口5432,如果改过要同步更新
  • 密码敏感?可用 dotnet user-secrets 替代明文(开发阶段)
  • Docker 或远程库?把 Host 改成服务名或 IP,确保网络通(常见超时错误多因连不上)

定义 DbContext 并注册依赖注入

先写一个继承 DbContext 的类:

晓象AI资讯阅读神器
晓象AI资讯阅读神器

晓象-AI时代的资讯阅读神器

晓象AI资讯阅读神器 72
查看详情 晓象AI资讯阅读神器
public class AppDbContext : DbContext<br>{<br>    public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }<br>    public DbSet<Product> Products { get; set; }<br>    protected override void OnModelCreating(ModelBuilder modelBuilder)<br>    {<br>        modelBuilder.Entity<Product>().ToTable("products"); // 映射到小写表名<br>    }<br>}
登录后复制

然后在 Program.cs(.NET 6+)中注册:

builder.Services.AddDbContext<AppDbContext>(options =><br>    options.UseNpgsql(builder.Configuration.GetConnectionString("PgConnection")));
登录后复制

这样后续控制器或服务里直接注入 AppDbContext 就能用了。

跑一次迁移,生成数据库

确保项目是启动项目,再执行:

dotnet ef migrations add InitialCreate<br>dotnet ef database update
登录后复制

成功后,PostgreSQL 里就会自动建好 products 表(含主键、时间戳等 EF 默认字段)。

基本上就这些。不复杂但容易忽略细节,比如包漏装、连接串端口写错、Docker 网络没打通——遇到连不上,优先查这三项。

以上就是EF Core如何连接PostgreSQL EF Core连接PostgreSQL教程的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号