全网整合营销服务商

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

免费咨询热线: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  # 主键  # 类中  # 需注意  # 多个  # 不需要  # 推荐使用  # 长时间  # 自动识别  # 只想  # 自带 


相关文章: 如何配置FTP站点权限与安全设置?  寿县云建站:智能SEO优化与多行业模板快速上线指南  jQuery 常见小例汇总  建站之星安装后界面空白如何解决?  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  如何在阿里云虚拟主机上快速搭建个人网站?  网站app免费制作软件,能免费看各大网站视频的手机app?  Swift中swift中的switch 语句  专业商城网站制作公司有哪些,pi商城官网是哪个?  ,怎么用自己头像做动态表情包?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  建站之星各版本价格是多少?  如何在橙子建站中快速调整背景颜色?  图册素材网站设计制作软件,图册的导出方式有几种?  实例解析angularjs的filter过滤器  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  如何选择高效响应式自助建站源码系统?  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  网站设计制作公司地址,网站建设比较好的公司都有哪些?  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?  网站制作网站,深圳做网站哪家比较好?  如何注册花生壳免费域名并搭建个人网站?  活动邀请函制作网站有哪些,活动邀请函文案?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  建站之星如何一键生成手机站?  如何生成腾讯云建站专用兑换码?  ,交易猫的商品怎么发布到网站上去?  如何在七牛云存储上搭建网站并设置自定义域名?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  建站之星如何优化SEO以实现高效排名?  建站之星伪静态规则如何正确配置?  如何批量查询域名的建站时间记录?  制作证书网站有哪些,全国城建培训中心证书查询官网?  如何基于云服务器快速搭建个人网站?  如何在IIS中新建站点并配置端口与物理路径?  已有域名能否直接搭建网站?  长沙企业网站制作哪家好,长沙水业集团官方网站?  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  如何在IIS管理器中快速创建并配置网站?  宿州网站制作公司兴策,安徽省低保查询网站?  网站制作说明怎么写,简述网页设计的流程并说明原因?  如何在云主机上快速搭建网站?  定制建站是什么?如何实现个性化需求?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  如何快速搭建个人网站并优化SEO?  专业网站建设制作报价,网页设计制作要考什么证?  建站主机核心功能解析:服务器选择与网站搭建流程指南 

您的项目需求

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