雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

.NET C# EntityFrameworkCore(EF)连接PostgreSQL数据库

2024-08-19 34

.NET C# EntityFrameworkCore(EF)可以连接到PostgreSQL数据库。要连接到PostgreSQL数据库,需要在项目中添加EF Core的PostgreSQL扩展包。可以通过NuGet包管理器来添加Npgsql.EntityFrameworkCore.PostgreSQL扩展包。在包管理器控制台中,搜索“Npgsql.EntityFrameworkCore.PostgreSQL”,然后选择“安装”。

添加扩展包后,就可以开始连接PostgreSQL数据库了。连接数据库需要以下步骤:

创建一个DbContext类。 在DbContext类中,指定数据库连接字符串。 使用DbContext类来操作数据库。

连接字符串包含以下信息:

数据库服务器的地址 数据库的端口号 数据库的名称 用户名 密码

连接字符串的格式如下:

Host=<server_address>;Port=<port_number>;Database=<database_name>;Username=<username>;Password=<password>

例如,如果数据库服务器的地址是localhost,端口号是5432,数据库的名称是test,用户名是postgres,密码是123456,则连接字符串为:

Host=localhost;Port=5432;Database=test;Username=postgres;Password=123456

以下是一个简单的例子,演示如何使用EF Core连接和操作PostgreSQL数据库:

using Microsoft.EntityFrameworkCore;
using System;

namespace MyApp
{
    public class PostgreSQLContext : DbContext
    {
        public PostgreSQLContext()
        {
            // 指定数据库连接字符串
            this.ConnectionString = "Host=localhost;Port=5432;Database=test;Username=postgres;Password=123456";
        }

        // 定义数据库表
        public DbSet<User> Users { get; set; }

        public void Seed()
        {
            // 插入数据
            User user = new User();
            user.Id = 1;
            user.Name = "John Doe";
            user.Age = 25;

            this.Users.Add(user);

            this.SaveChanges();
        }
    }

    public class User
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            // 创建DbContext实例
            PostgreSQLContext context = new PostgreSQLContext();

            // 执行数据库操作
            context.Seed();

            // 查询数据
            var users = context.Users.ToList();

            // 输出结果
            foreach (var user in users)
            {
                Console.WriteLine($"Id={user.Id}, Name={user.Name}, Age={user.Age}");
            }

            // 关闭DbContext实例
            context.Dispose();
        }
    }
}

以上代码将创建一个名为“PostgreSQLContext”的DbContext类。该类指定了连接字符串为“Host=localhost;Port=5432;Database=test;Username=postgres;Password=123456”。

该类还定义了一个名为“Users”的数据库表。该表包含三个字段:Id、Name和Age。

在Main()方法中,创建了DbContext实例。然后,使用Seed()方法插入了一条数据到Users表中。最后,使用ToList()方法查询了Users表中的数据,并将结果输出到控制台。

以下是一些有关使用EF Core连接和操作PostgreSQL数据库的其他注意事项:

EF Core支持两种数据库迁移方式:手动迁移和自动迁移。手动迁移需要开发人员手动编写迁移脚本,而自动迁移则可以使用EF Core提供的API自动生成迁移脚本。

EF Core支持多种数据库事务处理方式:自动事务处理、手动事务处理和可重试事务处理。自动事务处理是默认的事务处理方式,它会自动将多个数据库操作包装在一个事务中。手动事务处理需要开发人员自己管理事务的开始和结束。可重试事务处理可以自动重试失败的事务。

更新于:1个月前
赞一波!1

文章评论

全部评论