VS2022.NET8 + PostgreSql 数据库使用入门指南

VS2022.NET8 + PostgreSql 数据库使用入门指南
目录
一、VS2022添加NuGet安装包
XML 全选
<ItemGroup>
<PackageReference Include="Npgsql" Version="8.0.4" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.4" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuite" Version="8.0.4" />
</ItemGroup>
二、使用 NpgsqlConnection 连接数据,NpgsqlCommand读取数据
C# 全选
// 连接字符串
var connectionString = "Host=localhost;Username=postgres;Password=123456;Database=CSFrameworkV6_Normal";
using var connection = new NpgsqlConnection(connectionString);
connection.Open();
// 执行查询
using var cmd = new NpgsqlCommand("SELECT * FROM \"Test\"", connection);
var obj = cmd.ExecuteScalar();
参考: CSFramework.EF PostgreSQL 测试报告
三、SqlServer数据库迁移到PostgreSql
下载2个工具 sqlines 、 sqlinesdata

建立2个数据库

使用 SQLines Studio 转换 SQL 脚本

重要提示:
- 使用Deepseek将PostgreSql脚本的表名、字段名全部加上双引号
- 部分字段类型需要变更,比如 SqlServer的 DateTime类型,要对应 timestamp类型
开发框架表结构命名规范是大小写混合方式,PostgreSql需要加上双引号区分大小写:

然后在 pgAdmin 内执行脚本创建表结构。

使用 SQLines Data 迁移数据

迁移数据

查看迁移数据


提示:SQLines Data 迁移工具不能100%完整转换数据,遗漏数据手工补上。
四、.NET8使用PostgreSql 数据库注意事项
数据类型映射关系 - 表结构数据类型
数据类型映射关系 - .NET类型
.NETCore不能写入DateTime类型到PostgreSQL的timestamp类型字段
C# 全选
//
//解决.NETCore不能写入DateTime类型到PostgreSQL的timestamp类型字段
//
AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
AppContext.SetSwitch("Npgsql.DisableDateTimeInfinityConversions", true);
五、CSFramework.EF数据库组件支持PostgreSql 数据库
CSFramework.EF.PostgreSQL

软件测试报告
六、pgAdmin 常用操作
终止所有连接到该数据库的会话
在 postgres 数据库打开一个Query页面,运行:
SQL 全选
SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname = 'CSFrameworkV6_Normal';
七、PostgreSql数据库常用操作
特点:
- 表名、字段名区分大小写。Sql脚本注意使用双引号。
- 默认Schema: public
- .NET Datetime类型,PostgreSql需要定义 timestampz 类型。
待补充......
八、CSFrameworkV6旗舰版快速开发框架
支持多种数据库:SqlServer、MySql、Oracle、达梦、PostgreSql。
https://www.cscode.net/archive/csframeworkv6/548627974049797.html

版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网





