全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Entity Framework Core怎么执行增删改查 EF Core CRUD操作方法

Entity Framework Core 通过 DbSet 和 DbContext 配合异步方法实现 CRUD,无需手写 SQL;需注意上下文生命周期、实体状态及显式调用 SaveChangesAsync 才能持久化。

Entity Framework Core 执行增删改查(CRUD)核心靠 DbSetDbContext 配合异步方法完成,不需要手写 SQL,但需注意上下文生命周期、实体状态和保存时机。

创建实体与数据库上下文

先定义一个简单模型类(如 Product),再继承 DbContext 创建上下文类:

  • 实体类中主键建议用 [Key] 显式标注,或按命名约定(如 IdProductId)自动识别
  • 上下文类中声明 DbSet 属性,EF Core 会自动映射为数据表
  • 若需精细控制字段(长度、是否为空、列名等),可用数据注解([Required][MaxLength(100)][Column("product_name")])或 Fluent API 配置

注册并初始化 DbContext

在 ASP.NET Core 中,必须将上下文注册进 DI 容器,并指定数据库提供程序:

  • Program.cs(.NET 6+)中调用 builder.Services.AddDbContext(opt => opt.UseSqlServer(connStr))
  • 连接字符串写在 appsettings.jsonConnectionStrings 节点下
  • 控制台或非 Web 场景可直接 new 上下文,但需手动传入 DbContextOptions

执行增删改查操作

所有操作都通过 DbContext 实例的 DbSet 属性发起,推荐使用异步方法(ToListAsyncSaveChangesAsync 等):

  • 查(Read):用 LINQ 查询,如 context.Products.Where(p => p.Price > 100).ToListAsync();主键查询优先用 FindAsync(id)(性能更好,且会检查本地缓存)
  • 增(Create):调用 context.Products.Add(entity)AddRange,再执行 await context.SaveChangesAsync()
  • 删(Delete):可用 context.Products.Remove(entity)(实体已加载),或先 FindAsync 再删;也可用“仅主键实体”方式:context.Products.Attach(new Product { Id = 123 }); context.Products.Remove(entity);
  • 改(Update):最安全方式是先查出来,改属性,再 SaveChangesAsync;若只想更新部分字段,可用 Entry(entity).Property(e => e.Name).IsModified = true 显式标记

注意事务与上下文作用域

单次 SaveChangesAsync 默认自带事务,多个操作需原子性时可显式使用 Database.BeginTransaction();Web 应用中,推荐每个请求一个上下文(Scoped 生命周期),避免跨请求复用或长时间持有。

基本上就这些。不复杂但容易忽略细节,比如没调 SaveChangesAsync 就以为数据已入库,或者 Attach 后状态没设对导致更新失败。


# js  # json  # app  # ai  # sqlserver  # 作用域  # .net  # red  # sql  # 字符串  # 继承  # Property  # delete  # 异步  # column  # database  # 数据库  # linq  # 主键  # 类中  # 需注意  # 多个  # 不需要  # 推荐使用  # 长时间  # 自动识别  # 只想  # 自带 


相关文章: 如何选购建站域名与空间?自助平台全解析  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  宁波免费建站如何选择可靠模板与平台?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  如何获取PHP WAP自助建站系统源码?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  图册素材网站设计制作软件,图册的导出方式有几种?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  宝塔建站无法访问?如何排查配置与端口问题?  如何用低价快速搭建高质量网站?  建站主机如何选?性能与价格怎样平衡?  如何基于PHP生成高效IDC网络公司建站源码?  清除minerd进程的简单方法  高端云建站费用究竟需要多少预算?  建站168自助建站系统:快速模板定制与SEO优化指南  如何在局域网内绑定自建网站域名?  建站之星后台管理系统如何操作?  交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?  大型企业网站制作流程,做网站需要注册公司吗?  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  建站主机CVM配置优化、SEO策略与性能提升指南  如何快速搭建高效WAP手机网站吸引移动用户?  如何在建站之星绑定自定义域名?  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  利用JavaScript实现拖拽改变元素大小  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  制作网站外包平台,自动化接单网站有哪些?  如何快速搭建虚拟主机网站?新手必看指南  高防服务器如何保障网站安全无虞?  阿里云网站制作公司,阿里云快速搭建网站好用吗?  在线制作视频网站免费,都有哪些好的动漫网站?  微课制作网站有哪些,微课网怎么进?  盘锦网站制作公司,盘锦大洼有多少5G网站?  网站制作免费,什么网站能看正片电影?  北京营销型网站制作公司,可以用python做一个营销推广网站吗?  详解jQuery中基本的动画方法  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  Bpmn 2.0的XML文件怎么画流程图  建站主机是什么?如何选择适合的建站主机?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  如何用花生壳三步快速搭建专属网站?  香港网站服务器数量如何影响SEO优化效果?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  制作电商网页,电商供应链怎么做? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。