.NET Core中如何使用Entity Framework操作PostgreSQL?

介绍

Entity Framework (EF) 是 .NET Framework 中的一种对象关系映射 (ORM) 框架,它允许开发人员使用 .NET 对象操作数据库。在 .NET Core 中,EF Core 是 Entity Framework 的轻量级版本,它支持多种数据库(关系型和非关系型)以及不同的开发平台。本文将介绍如何在 .NET Core 中使用 EF Core 操作 PostgreSQL 数据库。

准备工作

在开始使用 EF Core 操作 PostgreSQL 数据库之前,需要安装以下软件:

Visual Studio 2019(或更高版本)

.NET Core SDK 3.1(或更高版本)

PostgreSQL 数据库

你可以从 PostgreSQL 官网 下载 PostgreSQL 数据库。

步骤 1:创建一个新的 .NET Core 项目

首先,我们需要创建一个新的 .NET Core 项目。在 Visual Studio 中,选择“创建新项目”,然后选择“ASP.NET Core Web 应用程序”。为项目命名,选择“API”模板,并确保选择“ASP.NET Core 3.1”或更高版本。单击“创建”按钮创建项目:

步骤 2:安装 PostgreSQL 数据库驱动程序

EF Core 支持多种关系型数据库,但为了在 .NET Core 项目中使用 PostgreSQL,我们需要安装适当的 Npgsql 驱动程序。Npgsql 是官方的 .NET 数据提供程序,它是使用 C# 编写的,用于与 PostgreSQL 数据库进行通信。

在 Visual Studio 的“解决方案资源管理器”中,右键单击项目,选择“管理 NuGet 包”。在“NuGet 包管理器”中搜索“Npgsql.EntityFrameworkCore.PostgreSQL”,然后安装最新版。这将安装 Npgsql 驱动程序并更新项目的 .csproj 文件:

步骤 3:创建一个 PostgreSQL 数据库

在 EF Core 中,数据库操作需要 DbContext 类。在本例中,我们将创建一个基本的 DbContext 去连接 PostgreSQL 数据库,并可将连接字符串放在 appsettings.json 文件中。

在 Visual Studio 的“解决方案资源管理器”中,右键单击“项目”,然后选择“添加新文件”。选择“数据” > “ADO.NET 实体数据模型”,将其命名为“BloggingContext”并单击“添加”:

选择“代码优先”,然后单击“完成”按钮。此时我们需要修改该类以连接 PostreSQL 数据库。

首先,我们需要在 appsettings.json 文件中添加连接字符串。打开 appsettings.json 文件,添加以下内容:

"ConnectionStrings": {

"Blog": "Host=localhost;Database=Blog;Username=postgres;Password=password"

}

在上述连接字符串中,“Host”是数据库服务器的名称或 IP 地址,“Database”是要连接的数据库名称,“Username”是访问数据库的用户名,“Password”是访问数据库的密码。

接下来,我们需要修改自动生成的 BloggingContext 类。在该类中,有自动生成的 OnConfiguring 方法,该方法设置了 SQL Server 数据库连接字符串。要使用 PostgreSQL 数据库,请修改此方法以使用 PostgreSQL 数据库连接字符串。打开 BloggingContext.cs 文件,并按如下所示修改 OnConfiguring 方法:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)

{

if (!optionsBuilder.IsConfigured)

{

//连接字符串的名字为 Blog

optionsBuilder.UseNpgsql(Configuration.GetConnectionString("Blog"));

}

}

步骤 4:创建一个实体并在数据库中创建表

有了 DbContext 和数据库连接字符串之后,我们就可以开始创建实体并在 PostgreSQL 数据库中创建表了。创建一个包含 Name、Url 和 Rating 属性的 Blog 类。在此示例中,我们还将为 Blog 带上 Required 和 MaxLength 特性:

public class Blog

{

public int BlogId { get; set; }

[Required]

[MaxLength(100)]

public string Name { get; set; }

[Required]

public string Url { get; set; }

public int Rating { get; set; }

}

接下来,可以使用“终端”窗口或“包管理器控制台”窗口使用以下命令生成数据库和表结构:

dotnet ef database update

此命令将会利用代码优先方式,生成相应的数据表。

步骤 5:使用 EF Core 操作 PostgreSQL 数据库

现在,我们已经成功配置 EF Core 连接到 PostgreSQL 数据库并创建了表。我们可以进行各种数据库操作,例如插入、查询和更新数据。以下是一些示例:

插入数据

可以使用以下代码向 Blog 数据库中插入新数据:

using (var context = new BloggingContext())

{

var blog = new Blog { Name = "Blog1", Url = "http://www.blog.com", Rating = 5 };

context.Blogs.Add(blog);

context.SaveChanges();

}

查询数据

可以使用以下代码从 Blog 数据库中查询数据:

using (var context = new BloggingContext())

{

var blogs = context.Blogs.ToList();

}

更新数据

可以使用以下代码更新现有数据:

using (var context = new BloggingContext())

{

var blog = context.Blogs.FirstOrDefault(b => b.BlogId == 1);

if (blog != null)

{

blog.Rating = 4;

context.SaveChanges();

}

}

总结

本文介绍了如何在 .NET Core 中使用 EF Core 操作 PostgreSQL 数据库。我们介绍了如何安装 Npgsql 驱动程序、创建数据库、建立表、插入、查询和更新数据。通过使用 EF Core,我们可以以面向对象的方式操作 PostgreSQL 数据库,避免写繁琐的 SQL 语句。

后端开发标签