专栏名称: dotNET跨平台
专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,Linux 主流平台
目录
相关文章推荐
拾榴询财  ·  聊聊长假全球市场,从黄金创新高说起 ·  昨天  
格上财富  ·  芒格:好大喜功的人,很容易搞歪门邪道 ·  4 天前  
格上财富  ·  DeepSeek:一场春晚 ·  5 天前  
PChouse家居APP  ·  《沙丘》美学 ... ·  5 天前  
51好读  ›  专栏  ›  dotNET跨平台

深入探索.NET Core 中的 EF Core:搭建与应用

dotNET跨平台  · 公众号  ·  · 2025-02-01 08:00

正文

在现代软件开发领域,数据访问层的高效性与便捷性对于构建稳健的应用程序至关重要。.NET Core 作为微软推出的跨平台、开源的开发框架,为开发者提供了强大的工具集,而 Entity Framework Core(EF Core)则是其中用于数据访问的核心组件之一。它允许开发者以对象 - 关系映射(ORM)的方式与数据库进行交互,极大地简化了数据操作流程。


一、EF Core 简介


EF Core 是 Entity Framework 的轻量级、跨平台版本,继承了其前身的诸多优点,并在性能、灵活性和可扩展性上有了显著提升。它支持多种数据库系统,包括 SQL Server、MySQL、PostgreSQL 等,使得开发者能够根据项目需求灵活选择合适的数据库,而无需对数据访问层的核心代码进行大规模重写。通过 EF Core,开发者可以使用 C# 语言以面向对象的方式操作数据库,将数据库表映射为实体类,数据库操作转换为对实体对象的操作,从而提高开发效率,减少代码冗余。

二、在.NET Core 项目中引入 EF Core


(一)项目创建


首先,需要创建一个.NET Core 项目。可以使用 Visual Studio 集成开发环境,通过模板创建一个新的 ASP.NET Core Web 应用程序、控制台应用程序或其他类型的项目,具体取决于项目的实际需求。

(二)安装 EF Core 相关包

项目创建完成后,打开 NuGet 包管理器控制台。在控制台中执行以下命令来安装必要的 EF Core 包:

 Install - Package Microsoft.EntityFrameworkCore :这是 EF Core 的核心包,包含了基本的 ORM 功能和数据库连接管理等基础组件。


 Install - Package Microsoft.EntityFrameworkCore.SqlServer (如果使用 SQL Server 数据库):此包提供了 EF Core 对 SQL Server 数据库的支持,包括特定的数据库类型映射、查询优化等功能。若使用其他数据库,如 MySQL,则应安装对应的包,如  Install - Package Pomelo.EntityFrameworkCore.MySql 。


 Install - Package Microsoft.VisualStudio.Web.CodeGeneration.Design :该包用于在项目中生成数据库上下文和实体类的代码,方便开发者快速搭建数据访问层的基础结构。

(三)生成实体类和数据库上下文


安装好相关包后,可以使用  Scaffold - DbContext  命令从现有数据库生成实体类和数据库上下文类。例如,执行以下命令:


 Scaffold - DbContext - Force "Data Source=YOUR_SERVER_NAME;Initial Catalog=YOUR_DATABASE_NAME;User ID=YOUR_USERNAME;Password=YOUR_PASSWORD" Microsoft.EntityFrameworkCore.SqlServer - OutputDir Models 


其中, YOUR_SERVER_NAME 、 YOUR_DATABASE_NAME 、 YOUR_USERNAME  和  YOUR_PASSWORD  需要替换为实际的数据库服务器名称、数据库名称、用户名和密码。 -OutputDir Models  表示生成的实体类和数据库上下文类将放置在项目的  Models  目录下。 -Force  参数用于强制覆盖已存在的文件。

三、EF Core 的基本使用

(一)定义实体类

生成的实体类代表了数据库中的表结构,每个实体类的属性对应表中的列。例如,对于一个  Users  表,可能生成如下的实体类:




public class User


{


    public int Id { get; set; }


    public string Name { get; set; }


    public string Email { get; set; }


}


(二)数据库上下文类




数据库上下文类继承自  DbContext ,用于管理数据库连接和对实体类的操作。在生成的上下文类中,会包含  DbSet  属性,每个属性对应一个实体类,用于执行查询、插入、更新和删除等操作。例如:

public class ApplicationDbContext : DbContext


{


    public ApplicationDbContext(DbContextOptions options) : base(options)


    {


    }


    public DbSet Users { get; set; }


}

(三)执行数据库操作


有了实体类和数据库上下文类,就可以进行各种数据库操作了。例如,查询所有用户:


using (var context = new ApplicationDbContext())


{


    var users = context.Users.ToList();


    foreach (var user in users)





请到「今天看啥」查看全文