新闻中心

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

2025-12-16
浏览次数:
返回列表
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教程的详细内容,更多请关注其它相关文章!


# 并在  # 武汉seo难不难  # 上饶小企业网站建设公司  # 国学服务馆网站建设方案  # 微信网站推广是什么意思  # 温州营销推广订制价格  # 顺德seo网站优化报价  # 网页seo优化地址  # seo智能优化工具  # 广州百度网站优化运营  # 快速营销推广意义是什么  # 中文网  # 用了  # 相关文章  # word  # 就能  # 放在  # 就会  # 连不上  # 多语言  # 三步  # .net  # microsoft  # 端口  # app  # docker  # json  # js 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 微博网页版直接访问 微博网页版账号管理快速入口  学习通网页版快速入口 学习通官网网页版直接打开  QQ邮箱在线使用入口 QQ邮箱个人账号网页版登录  PHP表单数据传递:如何通过隐藏输入字段获取动态ID  CSS实现侧边栏导航项全宽圆角悬停背景效果  R星幕后开发视频泄露 包含《GTA6》等多款大作  中兴Axon42Ultra怎样在文件App筛图_iPhone中兴Axon42Ultra文件App筛图【图片筛选】  邮政快递包裹最新位置 邮政快递实时追踪入口  顺丰快件物流信息 官方网站查询入口  ArrayList与LinkedList核心操作的Big-O复杂度分析  Win11怎么设置鼠标指针速度_Win11提高鼠标指针精确度选项  我的世界官方游戏入口 我的世界官网平台直达链接  c++如何使用折叠表达式(Fold Expressions)_c++17可变参数模板新技巧  Win11如何使用Windows Sandbox Win11沙盒功能开启与使用教程【详解】  冬*霸灯泡不亮怎么办_浴霸取暖灯一盏不亮的灯座清洁修复法  如何在J*a中实现统一对象行为接口_项目大型化时的接口规范化  Golang如何安装Swagger工具_GoSwagger文档生成环境  AO3最新镜像入口 Archive of Our Own官方平台访问  React Router v6 教程:构建认证保护的私有路由与重定向策略  德邦快递查询平台 德邦快递物流信息查询入口  Safari浏览器输入栏卡顿如何解决 Safari搜索建议与缓存清理  打开就能玩的植物大战僵尸 植物大战僵尸网页版传送门  小红书商家版怎样在笔记嵌入商品卡路径_小红书商家版在笔记嵌入商品卡路径【挂载教程】  sublime怎么预览Markdown渲染效果_Markdown Preview插件 for sublime教程  深入理解J*a编译器的兼容性选项:从-source到--release  Mac怎么锁定备忘录_Mac备忘录加密设置教程  怎样使用“本地安全策略”提升Windows安全性_Secpol.msc配置指南【高手】  TikTok搜索结果不显示如何解决 TikTok搜索刷新优化方法  163邮箱登录密码 163邮箱忘记密码找回  sublime侧边栏怎么增强功能_SideBarEnhancements for sublime安装与配置  文心一言怎样用批量生成做多版文案_文心一言用批量生成做多版文案【批量创作】  韩小圈电脑版在线入口_网页版免费登录地址  期待已久:小米17 Ultra、小米首款NAS本月登场  抓大鹅无需下载版 抓大鹅秒玩版入口  vivo浏览器怎么扫描二维码 vivo浏览器内置扫一扫功能使用方法  优酷会员付费后没到账怎么办_优酷会员充值异常及解决方法  Pygame教程:解决用户输入与游戏状态更新不同步问题  Composer的 "check-platform-reqs" 命令有什么用_在部署前检查生产环境是否满足Composer依赖需求  手机CPU怎么影响游戏体验_手机CPU对游戏性能的影响分析  如何创建没有密码的Windows本地账户_跳过微软账户登录的技巧【教程】  淘宝支付提示失败如何解决 淘宝支付流程优化方法  poki网页游戏推荐_poki免费游戏平台入口  《铁拳8》黑皮辣妹新实机:元气满满的18岁少女!  抖音隐秘迷城小游戏入口_ 抖音冒险解谜小游戏秒玩  Python Socket多播通信中指定源IP地址的实践指南  AngularJS $http POST请求数据传递与Go后端接收实践  漫蛙官网正版漫画入口 漫蛙2官方网页登录地址  支付宝碰一碰设备是REDMI手机吗 博主拆机辟谣:处理器、内存都不一样  React中useState与局部变量:理解组件状态管理与渲染机制  C++如何生成随机数_C++ random库使用方法与范围设置 

搜索