C#项目怎么集成EF Core C#集成EF Core完整步骤
发布时间 - 2025-12-29 00:00:00 点击率:次需安装Microsoft.EntityFrameworkCore、Microsoft.EntityFrameworkCore.Tools及对应数据库提供程序包;定义实体类与继承DbContext的上下文类;通过Add-Migration和Update-Database执行迁移;依赖注入使用DbContext并注意Scoped生命周期。
安装EF Core相关NuGet包
在Visual Studio中右键项目 → 选择“管理NuGet包” → 切换到“浏览”选项卡,依次安装以下核心包:
- Microsoft.EntityFrameworkCore(EF Core基础运行时)
- Microsoft.EntityFrameworkCore.Tools(支持迁移命令,如Add-Migration、Update-Database)
- 对应数据库的提供程序,例如:
• SQL Server: Microsoft.EntityFrameworkCore.SqlServer
• SQLite: Microsoft.EntityFrameworkCore.Sqlite
• PostgreSQL: Npgsql.EntityFrameworkCore.PostgreSQL
定义实体类和DbContext
创建一个或多个表示数据表的C#类(实体),例如:
public class Product
{
public int
Id { get; set; }
public string Name { get; set; } = string.Empty;
public decimal Price { get; set; }
}
再新建一个继承自DbContext的类,用于管理实体和数据库连接:
public class AppDbContext : DbContext
{
public DbSet Products { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlServer("YourConnectionStringHere");
}
推荐方式是把连接字符串抽离到appsettings.json,并在Program.cs中注册上下文:
builder.Services.AddDbContext(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")))
添加并应用迁移
打开“程序包管理器控制台”(PMC),确保默认项目选中你的主项目,然后执行:
- Add-Migration InitialCreate —— 生成首次迁移文件(含建表SQL)
- Update-Database —— 将迁移应用到数据库,自动创建数据库和表
后续模型变更时,重复执行这两步即可。迁移文件会保存在项目中的Migrations文件夹里,可手动检查生成的SQL逻辑。
在代码中使用DbContext
通过依赖注入获取AppDbContext实例,进行增删改查操作:
var product = new Product { Name = "Laptop", Price = 999.99m };
context.Products.Add(product);
await context.SaveChangesAsync(); // 异步保存
var products = await context.Products.ToListAsync(); // 查询全部
注意:DbContext应按作用域生命周期注册(AddDbContext默认即为Scoped),避免跨请求复用或手动new实例。
基本上就这些。不复杂但容易忽略配置位置和生命周期管理。
# js
# json
# app
# ai
# microsoft
# sqlserver
# c#
# 作用域
# c#类
# sql
# 字符串
# 继承
# visual studio
# sqlite
# database
# postgresql
# 数据库
# 程序包
# 首次
# 多个
# 右键
# 并在
# 实体类
# 管理器
# 两步
# 即为
# 创建一个
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
魔毅自助建站系统:模板定制与SEO优化一键生成指南
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
Swift开发中switch语句值绑定模式
JS经典正则表达式笔试题汇总
Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程
企业网站制作这些问题要关注
Laravel如何使用模型观察者?(Observer代码示例)
Python正则表达式进阶教程_复杂匹配与分组替换解析
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
Bootstrap整体框架之JavaScript插件架构
laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法
实例解析angularjs的filter过滤器
Laravel如何实现文件上传和存储?(本地与S3配置)
如何在云主机上快速搭建网站?
海南网站制作公司有哪些,海口网是哪家的?
网站制作软件免费下载安装,有哪些免费下载的软件网站?
如何破解联通资金短缺导致的基站建设难题?
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
Linux系统命令中screen命令详解
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
js代码实现下拉菜单【推荐】
Laravel怎么判断请求类型_Laravel Request isMethod用法
如何确保FTP站点访问权限与数据传输安全?
JS实现鼠标移上去显示图片或微信二维码
如何快速启动建站代理加盟业务?
如何在云虚拟主机上快速搭建个人网站?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
百度浏览器如何管理插件 百度浏览器插件管理方法
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
html如何与html链接_实现多个HTML页面互相链接【互相】
jQuery 常见小例汇总
如何在腾讯云服务器快速搭建个人网站?
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
高防服务器如何保障网站安全无虞?
Laravel如何处理异常和错误?(Handler示例)
如何在万网自助建站中设置域名及备案?
Java垃圾回收器的方法和原理总结
在centOS 7安装mysql 5.7的详细教程
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
如何自定义建站之星网站的导航菜单样式?
Python文件流缓冲机制_IO性能解析【教程】
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
Laravel安装步骤详细教程_Laravel环境搭建指南
如何用VPS主机快速搭建个人网站?
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
Laravel中的withCount方法怎么高效统计关联模型数量
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
高防服务器租用首荐平台,企业级优惠套餐快速部署


Id { get; set; }
public string Name { get; set; } = string.Empty;
public decimal Price { get; set; }
}