Entity Framework是C#中广泛使用的对象关系映射框架,它把数据库表映射为实体类,让开发者以操作对象的方式完成数据读写。借助DbContext,我们可以管理连接、跟踪变更并执行SQL命令。

一、定义实体与上下文
使用Code First方式时,先编写普通类作为实体,再创建继承DbContext的类暴露DbSet属性。
using System;
using System.Data.Entity;
using System.Collections.Generic;
// 实体类对应数据库中的Users表
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
// 数据库上下文
public class AppDbContext : DbContext
{
// 连接字符串名称在配置文件中定义
public AppDbContext() : base("name=AppConnection") { }
public DbSet<User> Users { get; set; }
}
二、插入数据
创建实体对象并加入到DbSet,然后调用SaveChanges提交到数据库。
using (var db = new AppDbContext())
{
var user = new User { Name = "张三", Age = 28 };
db.Users.Add(user);
int rows = db.SaveChanges(); // 返回受影响行数
Console.WriteLine("新增用户Id:" + user.Id);
}
三、查询数据
使用LINQ对DbSet进行筛选,EF会自动生成对应SQL。
using (var db = new AppDbContext())
{
// 查询年龄大于20的用户
var list = db.Users.Where(u => u.Age > 20).ToList();
foreach (var item in list)
{
Console.WriteLine(item.Name);
}
}
四、更新与删除
更新先查后改,删除用Remove方法,最后都需SaveChanges。
using (var db = new AppDbContext())
{
var user = db.Users.Find(1);
if (user != null)
{
user.Age = 30; // 更新
db.Users.Remove(user); // 删除
db.SaveChanges();
}
}
五、常见注意点
- 连接字符串需配置在App.config或Web.config中。
- SaveChanges默认开启事务,一次调用要么全成功要么全回滚。
- 复杂查询可写原始SQL:db.Users.SqlQuery("select * from Users")。
通过上述方式,C#的Entity Framework就能完成大多数数据库操作,让数据层代码更清晰易维护。
Entity_FrameworkC#数据库操作修改时间:2026-07-30 05:15:16