跳到主要内容

C# Entity Framework 基础

Entity Framework (EF) 是 .NET 平台中的一个对象关系映射 (ORM) 框架,它允许开发者通过面向对象的方式操作数据库,而无需直接编写 SQL 语句。对于初学者来说,Entity Framework 是一个强大的工具,可以简化数据库操作,提高开发效率。

什么是 Entity Framework?

Entity Framework 是一个 ORM 框架,它将数据库中的表映射为 C# 中的类,表中的每一行数据则映射为类的实例。通过这种方式,开发者可以使用 C# 代码来操作数据库,而不需要直接处理 SQL 查询。

EF 提供了多种方式来管理数据库,包括 Code FirstDatabase FirstModel First。对于初学者来说,Code First 是最常用的方式,因为它允许开发者通过编写 C# 代码来定义数据库结构。

安装 Entity Framework

在开始使用 Entity Framework 之前,你需要安装相关的 NuGet 包。你可以通过 NuGet 包管理器或命令行工具来安装:

bash
dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.SqlServer

创建数据库上下文

数据库上下文 (DbContext) 是 Entity Framework 的核心类,它负责管理与数据库的连接,并跟踪对数据的更改。你可以通过继承 DbContext 类来创建自己的数据库上下文。

csharp
using Microsoft.EntityFrameworkCore;

public class ApplicationDbContext : DbContext
{
public DbSet<Student> Students { get; set; }

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("YourConnectionStringHere");
}
}

在上面的代码中,ApplicationDbContext 类继承自 DbContext,并包含一个 DbSet<Student> 属性,表示数据库中的 Students 表。

定义实体类

实体类是数据库表的映射。每个实体类对应数据库中的一张表,类的属性对应表中的列。

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

在这个例子中,Student 类表示数据库中的 Students 表,包含 IdNameAge 三个属性。

添加数据

通过 Entity Framework,你可以轻松地向数据库中添加数据。以下是一个简单的示例:

csharp
using (var context = new ApplicationDbContext())
{
var student = new Student { Name = "John Doe", Age = 20 };
context.Students.Add(student);
context.SaveChanges();
}

在这段代码中,我们创建了一个新的 Student 对象,并将其添加到 Students 集合中。然后调用 SaveChanges 方法将更改保存到数据库。

查询数据

Entity Framework 提供了强大的查询功能,允许你使用 LINQ 查询数据库。

csharp
using (var context = new ApplicationDbContext())
{
var students = context.Students.Where(s => s.Age > 18).ToList();
foreach (var student in students)
{
Console.WriteLine($"Name: {student.Name}, Age: {student.Age}");
}
}

在这个例子中,我们使用 LINQ 查询年龄大于 18 的学生,并将结果打印到控制台。

更新数据

更新数据也非常简单。你可以通过查询获取实体对象,修改其属性,然后调用 SaveChanges 方法。

csharp
using (var context = new ApplicationDbContext())
{
var student = context.Students.FirstOrDefault(s => s.Name == "John Doe");
if (student != null)
{
student.Age = 21;
context.SaveChanges();
}
}

删除数据

删除数据同样简单。你可以通过查询获取实体对象,然后调用 Remove 方法将其从数据库中删除。

csharp
using (var context = new ApplicationDbContext())
{
var student = context.Students.FirstOrDefault(s => s.Name == "John Doe");
if (student != null)
{
context.Students.Remove(student);
context.SaveChanges();
}
}

实际应用场景

假设你正在开发一个学生管理系统,你需要存储学生的基本信息,并提供增删改查功能。使用 Entity Framework,你可以轻松地实现这些功能,而无需编写复杂的 SQL 语句。

总结

Entity Framework 是一个强大的 ORM 框架,它允许开发者通过 C# 代码操作数据库,极大地简化了数据库编程。通过本文,你已经了解了 Entity Framework 的基础知识,包括如何创建数据库上下文、定义实体类、以及如何进行增删改查操作。

附加资源

练习

  1. 创建一个新的 C# 项目,并使用 Entity Framework 实现一个简单的学生管理系统。
  2. 尝试使用 Code First 方法创建一个新的数据库,并添加一些测试数据。
  3. 使用 LINQ 查询数据库中的数据,并将结果打印到控制台。
提示

在开发过程中,记得定期备份数据库,以防止数据丢失。