openGauss-connector-adonet:基于 .NET 技术的 PostgreSQL 数据提供程序项目

用户可使用该项目在 .NET 环境中连接和交互 PostgreSQL 服务器。它是高性能驱动,支持多数 PostgreSQL 类型,提供高效 bulk 导入/导出 API,支持多主机,可与 Entity Framework Core 集成。【此简介由AI生成】

Branch2Tags0

OpenGauss - 专为 PostgreSQL 打造的 .NET 数据驱动

稳定版 下个补丁 每日构建 (vnext) 构建状态 交流群

OpenGauss 是什么?

OpenGauss 是 PostgreSQL 的开源 .NET 数据驱动,让您能够通过 .NET 连接并操作 PostgreSQL 数据库。

完整文档请访问 OpenGauss 官方网站。若需搭配此驱动使用的 Entity Framework Core 提供程序,请参阅 OpenGauss.EntityFrameworkCore.PostgreSQL

快速入门

以下是一个基础代码示例助您快速上手:

var connString = "Host=myserver;Username=mylogin;Password=mypass;Database=mydatabase";

await using var conn = new OpenGaussConnection(connString);
await conn.OpenAsync();

// Insert some data
await using (var cmd = new OpenGaussCommand("INSERT INTO data (some_field) VALUES (@p)", conn))
{
    cmd.Parameters.AddWithValue("p", "Hello world");
    await cmd.ExecuteNonQueryAsync();
}

// Retrieve all rows
await using (var cmd = new OpenGaussCommand("SELECT some_field FROM data", conn))
await using (var reader = await cmd.ExecuteReaderAsync())
{
while (await reader.ReadAsync())
    Console.WriteLine(reader.GetString(0));
}

核心特性

  • 高性能 PostgreSQL 驱动。在 TechEmpower Web 框架性能测试 中持续名列前茅。
  • 全面支持大多数 PostgreSQL 类型,包括数组、枚举、范围、多范围、复合类型、JSON、PostGIS 等高级类型。
  • 高效的大批量数据导入/导出 API。
  • 故障转移、负载均衡及通用多主机支持。
  • 通过 OpenGauss.EntityFrameworkCore.PostgreSQL 与 Entity Framework Core 实现深度集成。

完整文档请访问 OpenGauss 官网:https://www.opengauss.org

测试

测试用户

create user gaussdb with password '<YOUR_PASSWORD>' sysadmin;
create database dotnet_a DBCOMPATIBILITY='A';
create database dotnet_b DBCOMPATIBILITY='B';
create database dotnet_pg DBCOMPATIBILITY='PG';
\c dotnet_a;
create schema gaussdb;
\c dotnet_b
create schema gaussdb;
\c dotnet_pg
create schema gaussdb;

BUG测试

Bug1645 -> OpenGauss.PostgresException : 42P07: 关系 "data" 已存在 Bug2278 -> OpenGauss.PostgresException : 0A000: 暂不支持 DOMAIN 类型 Bug2296 -> OpenGauss.PostgresException : 42P07: 关系 "data" 已存在 Bug3649 -> OpenGauss.PostgresException : 42601: 在 "binary" 附近存在语法错误

分块字符数组写入缓冲区编码空间 -> OpenGauss.PostgresException : 42601: 在 "BINARY" 附近存在语法错误 分块字符串写入缓冲区编码空间 -> OpenGauss.PostgresException : 42601: 在 "BINARY" 附近存在语法错误

连接测试

连接_从环境变量获取选项_成功 -> 设置环境变量("PGOPTIONS", "-c default_transaction_isolation=serializable -c default_transaction_deferrable=on -c foo.bar=My"))

大对象测试

OpenGauss.PostgresException : 0A000: openGauss 暂不支持大对象功能

类型映射测试

字符串转citext类型 -> OpenGauss.PostgresException : 58P01: 无法打开扩展控制文件: 文件或目录不存在

语句OID_传统批处理 -> 暂不支持 CREATE TABLE ... WITH OIDS 语法

模式测试

列模式数据类型 -> 暂不支持 line 类型

元数据集合 -> 暂不支持 pg_node_tree 类型

精度与范围 -> 暂不支持 pg_node_tree 类型

Noda时间测试

间隔转持续时间(含月份)失败 -> 不存在函数 make_interval(months := integer)

Introduction

用户可使用该项目在 .NET 环境中连接和交互 PostgreSQL 服务器。它是高性能驱动,支持多数 PostgreSQL 类型,提供高效 bulk 导入/导出 API,支持多主机,可与 Entity Framework Core 集成。【此简介由AI生成】

Customize my domain