ORM 框架:Entity Framework
Entity Framework 是一个面向 .NET 开发的对象关系映射器,它让你能够通过操作 .NET 对象(模型)来与数据库进行交互,无需关心底层的 SQL 语句和数据库连接细节。
- 核心价值与工作模式
ORM 概念:实现了关系数据库与面向对象编程语言之间数据的转换。数据库中的表 映射为 C# 中的类,表中的一行记录 映射为 类的一个实例对象,表中的列 映射为 对象的属性。
开发模式:你主要接触的是 Database First 或 Code First 模式。
Database First:从已存在的数据库生成实体数据模型(.edmx 文件)和对应的 C# 实体类。适合已有数据库的项目。
Code First:先编写 C# 实体类代码,然后由 EF 根据代码创建数据库。更符合现代开发流程,强调代码为中心。
- 核心组件与流程
DbContext:这是 EF 的核心类,代表与数据库的一个会话。
职责:负责管理实体对象的生命周期、跟踪更改、执行数据库操作(查询、保存)、管理事务等。
常用操作:你的代码中会频繁使用 _context.Students.ToList(), _context.Students.Add(newStudent), _context.SaveChanges() 等方法。
DbSet
在 DbContext 中定义的属性,代表数据库中的特定表。
例如:public DbSet
实体类:
就是普通的 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)并执行。
- 关键操作
查询:使用 ToList(), FirstOrDefault(), SingleOrDefault(), Where(), Include() 等方法从数据库获取数据。
增:创建一个新的实体对象,然后使用 DbSet.Add(entity) 方法将其标记为“新增”,最后调用 SaveChanges() 将更改提交到数据库。
删:先从数据库查询出要删除的实体,然后使用 DbSet.Remove(entity) 方法将其标记为“删除”,最后调用 SaveChanges()。
改:先从数据库查询出要修改的实体,直接修改其属性值(EF 变更跟踪器会检测到这些更改),然后调用 SaveChanges()。
- 数据绑定与 WinForm 的集成
这是你项目中的关键整合点。你学会了:
使用 EF 从数据库查询数据(例如:List
将这个数据集合(students)设置为 DataGridView 的 DataSource 属性。
当用户在界面上进行增删改操作后,通过调用 EF 的相应方法,最终执行 _context.SaveChanges(),将 UI 上的更改持久化到数据库。

浙公网安备 33010602011771号