VS2022 + EF Core 操作数据库教程
编辑
31
2025-07-12
VS2022 + EF Core 操作数据库教程
本文适合使用 Visual Studio 2022 的 .NET 开发者,详细讲解如何用 Entity Framework Core 操作数据库,支持 Code-First 和 Database-First。
📖 什么是 Entity Framework Core?
Entity Framework Core(EF Core)是 Microsoft 提供的轻量级、跨平台 ORM(对象关系映射)框架。
你可以通过 EF Core 直接用 C# 对象 操作数据库,而不需要手写 SQL 语句。
🛠 环境准备
- Visual Studio 2022(安装最新 .NET 6/7 SDK)
- 安装数据库(SQL Server / MySQL / SQLite 均可)
- 安装 NuGet 包管理器支持(VS 自带)
📦 安装 EF Core
打开 Visual Studio 2022 项目,在 工具 → NuGet 包管理器 → 包管理器控制台 输入:
📌 SQL Server
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools
📌 MySQL
Install-Package Pomelo.EntityFrameworkCore.MySql
📌 SQLite
Install-Package Microsoft.EntityFrameworkCore.Sqlite
✨ 创建示例项目
1️⃣ 新建控制台项目
- 在 VS2022 创建一个 .NET 6/7 控制台应用
- 项目名称:
EfCoreDemo
2️⃣ 定义实体类 (Model)
创建一个新文件 User.cs:
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
}
3️⃣ 定义 DbContext
创建 AppDbContext.cs:
using Microsoft.EntityFrameworkCore;
public class AppDbContext : DbContext
{
public DbSet<User> Users { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder options)
{
// SQL Server 连接字符串
options.UseSqlServer("Server=localhost;Database=EfCoreTestDb;Trusted_Connection=True;");
}
}
⚠️ 修改
Server和Database为你自己的数据库信息。
🚀 Code-First 创建数据库
📌 生成数据库迁移
在包管理器控制台运行:
Add-Migration InitialCreate
📌 更新数据库
Update-Database
执行后会在数据库中生成名为 EfCoreTestDb 的数据库和 Users 表。
🔥 CRUD 操作示例
✅ 新增数据
using (var db = new AppDbContext())
{
var user = new User { Name = "Tim", Email = "tim@example.com" };
db.Users.Add(user);
db.SaveChanges();
Console.WriteLine($"新增用户:{user.Name}");
}
✅ 查询数据
using (var db = new AppDbContext())
{
var users = db.Users.ToList();
foreach (var user in users)
{
Console.WriteLine($"{user.Id} - {user.Name} - {user.Email}");
}
}
✅ 更新数据
using (var db = new AppDbContext())
{
var user = db.Users.FirstOrDefault();
if (user != null)
{
user.Email = "newemail@example.com";
db.SaveChanges();
Console.WriteLine("已更新邮箱");
}
}
✅ 删除数据
using (var db = new AppDbContext())
{
var user = db.Users.FirstOrDefault();
if (user != null)
{
db.Users.Remove(user);
db.SaveChanges();
Console.WriteLine("已删除用户");
}
}
🌱 Database-First(反向生成模型)
如果已有数据库,可以用 Scaffold 命令生成模型:
Scaffold-DbContext "Server=localhost;Database=EfCoreTestDb;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
⚠️ 注意事项
- 连接字符串安全:生产环境请用配置文件或环境变量保存连接字符串。
- DbContext 生命周期:Web 项目建议用 依赖注入 (DI) 管理 DbContext。
- 迁移管理:多个开发者协作时需谨慎合并迁移文件。
🏁 总结
通过 EF Core,你可以用最少的代码实现数据库 CRUD 操作,避免手写 SQL。无论是 Code-First 还是 Database-First,EF Core 都能大幅提高开发效率。
📌 参考资料
- 0
- 0
-
分享