.NET C# EntityFrameworkCore(EF)可以连接到PostgreSQL数据库。要连接到PostgreSQL数据库,需要在项目中添加EF Core的PostgreSQL扩展包。可以通过NuGet包管理器来添加Npgsql.EntityFrameworkCore.PostgreSQL扩展包。在包管理器控制台中,搜索“Npgsql.EntityFrameworkCore.PostgreSQL”,然后选择“安装”。
添加扩展包后,就可以开始连接PostgreSQL数据库了。连接数据库需要以下步骤:
连接字符串包含以下信息:
连接字符串的格式如下:
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支持多种数据库事务处理方式:自动事务处理、手动事务处理和可重试事务处理。自动事务处理是默认的事务处理方式,它会自动将多个数据库操作包装在一个事务中。手动事务处理需要开发人员自己管理事务的开始和结束。可重试事务处理可以自动重试失败的事务。