首页 / .NET Core / 正文

.NET Core(.NET 7)如何使用Dapper连接PostgreSQL数据库并实现CRUD(新增,查询,修改,删除)的超详细入门示例教程

2832 发布于: 2023-02-04 读完约需10分钟

概述

PostgreSQL是一款开源的对象关系型数据库管理系统(ORDBMS)。它与常见的关系型数据库管理系统(RDBMS)如MySQL、Oracle和Microsoft SQL Server等不同,因为它具有更多高级功能,如对象存储、复杂查询和规范化等。

PostgreSQL提供了.NET Core(.NET 7)的连接驱动,对于一个专注C#&.NET的作者来说,写一篇关于《.NET Core(.NET 7)如何使用Dapper连接PostgreSQL数据库并实现CRUD(新增,查询,修改,删除)的超简单入门示例教程》也就顺理成章了。

那么,本文就为大家分享在C#&.NET Core(.NET 7)应用程序中如何使用Dapper连接PostgreSQL数据,同时完成简单的增,删,改,查基本操作。

本文源码下载地址:

准备工作

在开始本文C#&.NET Core应用程序使用Dapper连接 PostgreSQL数据库之前,你需要准备如下环境及组件:

  • PostgreSQL数据库及管理工具(如:pgAdmin)
  • .NET Core(.NET 7)开发环境
  • 开发工具(Visual Studio 2019及以上版本,建议Visual Studio 2022)
  • PostgreSQL示例表创建脚本

本文以简单的员工(employee)信息管理为示例,示例数据表的SQL脚本如下:

注:本示例的PostgreSQL架构(Schema)为dbo,登录用户名为dev,请自行对应你的数据库架构。

向示例数据表中写入一条测试测试,INSERT INTO脚本如下:

结果如下图所示:

开始

首先,创建一个名为PostgresDemo的.NET Core(.NET 7) Web API应用程序项目。

1.选择程序项目模板为:ASP.NET Core Web API,如下图:

2.配置项目的项目名称,项目路径,解决方案名称等基础信息,如下图:

3.配置项目的附加信息(目标框架版本,身份验证方式等),如下图:

以上三个步骤的信息填写完成后,点击【Create】按钮以创建项目。创建好的项目模板如下:

在C#&.NET Core(.NET 7)使用Dapper连接PostgreSQL数据库的操作中,需要用到NpgsqlDapper这两个Nuget程序包,.NET CLI安装命令如下:

或者,我们也可以使用Visual Studio中的Nuget程序包管理工具安装,如下:

配置数据库连接

1.在appsettings.json配置文件中添加PostgreSQL的连接配置,如下:

示例程序功能开发

在项目根目录下分别创建ModelsDtos文件夹,在Models文件夹中新建员工类Employee.cs,员工属性信息如下:

查询员工列表

PostgresDemo项目的Controllers控制器目录下新建一个名为EmployeeController.cs的控制器类并修改[Route("[controller]")],示例代码如下:

接着,在EmployeeController.cs控制器类中新增查询员工列表的接口服务,示例代码如下:

完成上述步骤后,我们将PostgresDemo项目运行起来,在浏览器中打开项目swagger文档地址:http://localhost:5119/swagger/index.html,再执行其中的api/Employee/Employees接口,得到如下的运行结果:

到这里,细心的读者可能注意到了,Employee.cs中的属性均是以CamelCase方式命名的(如:Id,LoginName),但上文的SQL脚本中字段名却是以小写和以划线方式命名的(如:id,login_name)。

所以,如果直接使用Dapper查询的话,无法完成数据库字段到C#属性的映射。也就是查询到的结果中,loginNamecreatedAt这两个属性对应的值是不正确的,如图所示:

为了解决这个问题,我们需要在Program.cs中配置Dapper的数据库字段与属性默认映射使用下划线模式,代码如下:

此时的Program.cs代码如下:

重新运行项目,再在swagger中执行调用上面的接口,得到正确的员工数据列表如下图:

封装PostgreSQL的常用操作

1.为了代码复用,在项目根目录下创建一个名为NpgHelper.cs的类,用来管理PostgreSQL的相关操作,示例代码如下:

2.配置PostgreSQL数据库连接,打开Program.cs文件,在其中调用NpgHelper.Configure()方法来配置PostgreSQL的配置参数,如下:

3.修改EmployeeController控制器的代码,使用NpgHelper来创建PostgreSQL的连接对象,示例如下:

重新运行,得到与上面相同的结果:

新建员工信息

这里,我们将使用Dapper在PostgreSQL数据库的dbo.empolyee表中创建新的员工信息。

在项目的Dtos/目录中创建名为Employee的目录,并新建一个CreateEmployeeRequestDto.cs的DTO实体类文件,代码如下:

此时的项目结构如下:

然后,在EmployeeController控制器中新增创建员工的Create(CreateEmployeeRequestDto request),示例如下:

保存并重新运行项目,可以看到swagger文档中多了刚创建的创建用户的接口,如下图:

现在,在api/Employee/Create的接口服务创建用户,示例数据如下:

运行结果如下:

重新调用api/Employee/Employees接口,查看PostgreSQL数据库中员工表(dbo.employee)中是否有两条员工信息,得到的结果如下:

更新员工信息

在项目的Dtos/Employee目录中新建一个UpdateEmployeeRequestDto.cs的DTO实体类文件,代码如下:

此时的项目结构如下:

然后,在EmployeeController控制器中新增更新员工的方法Update(UpdateEmployeeRequestDto request),示例如下:

保存并重新运行项目,可以看到swagger文档中多了刚创建的更新用户接口,如下图:

现在,调用api/Employee/Update的接口服务更新id2的用户信息,示例数据如下:

运行结果如下:

重新调用api/Employee/Employees接口,查看PostgreSQL数据库中员工表(dbo.employee)中是否有两条员工信息,得到的结果如下:

删除员工信息

删除PostgreSQL数据库的员工信息就比较简单一些了,这里我们根据员工的ID进行删除,在控制器EmployeeController中创建方法Delete(int id),示例代码如下:

保存并重新运行项目,可以看到swagger文档中多了刚创建的删除用户接口,如下图:

现在,调用api/Employee/Delete/{id}的接口服务删除id2的用户信息,运行结果如下:

重新调用api/Employee/Employees接口,查看PostgreSQL数据库中员工表(dbo.employee)中是否有两条员工信息,得到的结果如下:

总结

以上就是本文关于《.NET Core(.NET 7)如何使用Dapper连接PostgreSQL数据库并实现CRUD(新增,查询,修改,删除)的超简单入门示例教程》的所有内容,希望对你的C#&.NET Core(.NET 7)操作PostgreSQL数据有帮助。

我是Rector,专注C#&.NET开发,关注我,解锁更多开发技巧。

本文源码下载地址:

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: WPF 获取全局所有窗口的创建显示事件 监控窗口打开

下一篇: 在C#&.NET Core(.NET 7)程序开发中使用Npgsql,Dapper,EF Core等不同方式连接和操作PostgreSQL数据库示例教程(推荐阅读)

本文永久链接码友网 » .NET Core(.NET 7)如何使用Dapper连接PostgreSQL数据库并实现CRUD(新增,查询,修改,删除)的超详细入门示例教程

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册