首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >面向初学者的 Entity Framework Core

面向初学者的 Entity Framework Core

作者头像
郑子铭
发布2025-02-18 13:50:50
发布2025-02-18 13:50:50
39900
代码可运行
举报
运行总次数:0
代码可运行

实体框架核心(Entity Framework Core,简称EF Core)是一款适用于.NET应用程序的开源、轻量级且跨平台的对象关系映射器(Object-Relational Mapper,简称ORM)。它允许开发人员使用.NET对象来操作数据库,从而无需编写大多数SQL查询语句。EF Core通过对数据库交互的复杂性进行抽象,使得数据访问代码更易于维护、扩展和测试。

如果你刚开始接触EF Core,本文将介绍其基本概念并帮助你上手使用它。

什么是ORM?

在深入了解EF Core之前,理解什么是ORM非常重要。ORM(对象关系映射)是软件开发中用于在不兼容的系统(如数据库和编程语言)之间转换数据的一种技术。简单来说,ORM允许你使用面向对象编程的方式与数据库进行交互,而无需编写原始的SQL查询语句。

为什么使用实体框架核心?

以下是EF Core被广泛使用的一些原因:

  • 与SQL解耦:对于诸如增删改查(Create,Read,Update,Delete,即CRUD)等基本的数据库操作,你无需编写SQL查询语句。EF Core会在幕后生成相应的SQL语句。
  • 跨平台:EF Core支持Windows、Linux和macOS系统,这使其适用于现代.NET应用程序。
  • 支持多种数据库:EF Core可以与不同的数据库协同工作,例如SQL Server、SQLite、PostgreSQL、MySQL等等。
  • 代码先行(Code-first)方法:借助EF Core,你可以使用代码先行的方法直接依据.NET类来创建数据库结构。

EF Core中的关键概念

  • DbContext: DbContext是EF Core中的核心类,用于管理数据库交互操作。它充当了.NET应用程序与数据库之间的桥梁。你通过继承DbContext类并指定哪些实体应映射到数据库表来定义自己的DbContext。

示例:

代码语言:javascript
代码运行次数:0
运行
复制
public class AppDbContext : DbContext
{
    public DbSet<Student> Students { get; set; }
}
  • DbSet: DbSet表示可从数据库中查询的实体集合。它对应于数据库中的一张表,并且每个DbSet实例都允许你执行诸如添加、删除或查询数据之类的操作。

示例:

代码语言:javascript
代码运行次数:0
运行
复制
public classStudent
{
    publicint Id {get;set;}
    publicstring Name {get;set;}
    publicDateTime BirthDate {get;set;}
}

在上述示例中,AppDbContext中的Students是一个DbSet,它指向数据库中存储Student实体的表。

  • 迁移(Migrations): 迁移是EF Core的一项功能,它允许你随着应用程序的发展更新数据库架构。例如,如果你向一个实体类添加了新的属性,你可以生成一个迁移,以便将该变更应用到数据库架构上,同时又不会丢失现有数据。

要创建迁移,可使用以下命令:

代码语言:javascript
代码运行次数:0
运行
复制
dotnet ef migrations add InitialCreate

要更新数据库,使用以下命令:

代码语言:javascript
代码运行次数:0
运行
复制
dotnet ef database update

开始使用EF Core

以下是在.NET项目中设置EF Core的简单指南。

步骤1:安装EF Core包

在你的.NET项目中,需要安装EF Core相关的包。你可以通过NuGet包管理器或者命令行来进行安装。

命令如下:

代码语言:javascript
代码运行次数:0
运行
复制
dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
步骤2:定义模型类

创建用于表示数据库实体的模型类。

例如:

代码语言:javascript
代码运行次数:0
运行
复制
public classStudent
{
    publicint Id {get;set;}
    publicstring Name {get;set;}
    publicDateTime BirthDate {get;set;}
}
步骤3:设置DbContext

接下来,创建一个继承自DbContext并代表数据库上下文的类。

代码语言:javascript
代码运行次数:0
运行
复制
public classAppDbContext:DbContext
{
    publicDbSet<Student> Students {get;set;}

    protectedoverridevoidOnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer(@"Server=.;Database=SchoolDB;Trusted_Connection=True;");
    }
}
步骤4:创建并应用迁移

要创建初始数据库,按照前面介绍的方法生成迁移:

代码语言:javascript
代码运行次数:0
运行
复制
dotnet ef migrations add InitialCreate

然后,应用迁移来创建数据库:

代码语言:javascript
代码运行次数:0
运行
复制
dotnet ef database update
步骤5:使用EF Core执行增删改查操作

现在你可以使用EF Core与数据库进行交互了。以下是添加和检索数据的示例:

添加一名新学生:

代码语言:javascript
代码运行次数:0
运行
复制
using (var context = new AppDbContext())
{
    var student = new Student { Name = "John Doe", BirthDate = DateTime.Parse("2000-01-01") };
    context.Students.Add(student);
    context.SaveChanges();
}

检索学生信息:

代码语言:javascript
代码运行次数:0
运行
复制
using (var context = new AppDbContext())
{
    var students = context.Students.ToList();
    foreach (var student in students)
    {
        Console.WriteLine($"{student.Id}: {student.Name} - {student.BirthDate}");
    }
}

实体框架核心通过在SQL和数据库之上提供更高级别的抽象,简化了.NET应用程序中的数据库管理和交互操作。对于那些希望更专注于编写简洁、可维护代码,而不想处理原始SQL查询语句的开发人员来说,它是一款出色的工具。通过使用EF Core,你可以轻松管理数据库架构变更、执行增删改查操作,并维护一个简洁且可扩展的代码库。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-02-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DotNet NB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是ORM?
  • 为什么使用实体框架核心?
  • EF Core中的关键概念
  • 开始使用EF Core
    • 步骤1:安装EF Core包
    • 步骤2:定义模型类
    • 步骤3:设置DbContext
    • 步骤4:创建并应用迁移
    • 步骤5:使用EF Core执行增删改查操作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档