ORM 框架:Entity Framework

Entity Framework 是一个面向 .NET 开发的对象关系映射器,它让你能够通过操作 .NET 对象(模型)来与数据库进行交互,无需关心底层的 SQL 语句和数据库连接细节。

  1. 核心价值与工作模式
    ORM 概念:实现了关系数据库与面向对象编程语言之间数据的转换。数据库中的表 映射为 C# 中的类,表中的一行记录 映射为 类的一个实例对象,表中的列 映射为 对象的属性。

开发模式:你主要接触的是 Database First 或 Code First 模式。

Database First:从已存在的数据库生成实体数据模型(.edmx 文件)和对应的 C# 实体类。适合已有数据库的项目。

Code First:先编写 C# 实体类代码,然后由 EF 根据代码创建数据库。更符合现代开发流程,强调代码为中心。

  1. 核心组件与流程
    DbContext:这是 EF 的核心类,代表与数据库的一个会话。

职责:负责管理实体对象的生命周期、跟踪更改、执行数据库操作(查询、保存)、管理事务等。

常用操作:你的代码中会频繁使用 _context.Students.ToList(), _context.Students.Add(newStudent), _context.SaveChanges() 等方法。

DbSet

在 DbContext 中定义的属性,代表数据库中的特定表。

例如:public DbSet Students { get; set; } 表示一个 Students 表。

实体类:

就是普通的 C# 类,用于映射数据库表。

例如 Student 类,包含 Id, Name, Age 等属性,分别对应表中的字段。

LINQ to Entities:

是你在 EF 中进行查询的主要方式。你可以使用强类型的 LINQ 查询语法或方法语法来操作 DbSet。

示例:var topStudents = _context.Students.Where(s => s.Score > 90).OrderByDescending(s => s.Score).ToList();

EF 会将你的 LINQ 查询在运行时转换为标准的 SQL 语句(如 SELECT ... FROM Students WHERE Score > 90 ORDER BY Score DESC)并执行。

  1. 关键操作
    查询:使用 ToList(), FirstOrDefault(), SingleOrDefault(), Where(), Include() 等方法从数据库获取数据。

增:创建一个新的实体对象,然后使用 DbSet.Add(entity) 方法将其标记为“新增”,最后调用 SaveChanges() 将更改提交到数据库。

删:先从数据库查询出要删除的实体,然后使用 DbSet.Remove(entity) 方法将其标记为“删除”,最后调用 SaveChanges()。

改:先从数据库查询出要修改的实体,直接修改其属性值(EF 变更跟踪器会检测到这些更改),然后调用 SaveChanges()。

  1. 数据绑定与 WinForm 的集成
    这是你项目中的关键整合点。你学会了:

使用 EF 从数据库查询数据(例如:List students = _context.Students.ToList();)。

将这个数据集合(students)设置为 DataGridView 的 DataSource 属性。

当用户在界面上进行增删改操作后,通过调用 EF 的相应方法,最终执行 _context.SaveChanges(),将 UI 上的更改持久化到数据库。

posted @ 2025-11-20 17:37  Look_Back  阅读(6)  评论(0)    收藏  举报