千家信息网

EF如何直接更新数据

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了EF如何直接更新数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。EF中会为每个 管理的 实体对象 创建一个代理包装
千家信息网最后更新 2026年11月02日EF如何直接更新数据

这篇文章主要介绍了EF如何直接更新数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

EF中会为每个 管理的 实体对象 创建一个代理包装类对象,其中会跟踪 实体对象 的状态和每个属性的状态;

一、通常使用EF更新的方式,先查询出要修改的数据,然后再修改新的值;实体对象被修改的属性 在 代理包装类对象里 的对应属性状态会被修改记录下修改状态,等到调用SaveChanges时,EF会遍历其管理的每个实体对象,并根据其 包装类对象 的状态,生成增删改查sql语句并执行;

此例中修改操作,会生成 修改的sql语句(注意:此处只为修改过的属性生成sql语句),最后执行。

缺点:修改先还要查询,难受~~~~

//------------------------------------------------------

//1.先查询要修改的原数据

Models.BlogArticle modelNew = db.BlogArticles.Where(a => a.AId == model.AId).FirstOrDefault();

//2.设置修改后的值

modelNew.ATitle = model.ATitle;

modelNew.AContent = model.AContent;

modelNew.ACate = model.ACate;

//3.跟新到数据库

db.SaveChanges();

二、为避免先查询数据库,可以直接将 被修改的实体对象 添加到 EF中管理(此时为附加状态Attached),并手动设置其为未修改状态(Unchanged),同时设置被修改的实体对象 的 包装类对象 对应属性为修改状态。

优点:修改前不需要查询数据库。

//-----------------------------------------------------

//0.0创建修改的 实体对象

Models.BlogArticle model = new BlogArticle();

model.AId = 12;

model.ATitle = "新的数据";

model.AContent = "新的数据~~~~~";

//0.1添加到EF管理容器中,并获取 实体对象 的伪包装类对象

DbEntityEntry entry = db.Entry(model);

//**如果使用 Entry 附加 实体对象到数据容器中,则需要手动 设置 实体包装类的对象 的 状态为 Unchanged**

//**如果使用 Attach 就不需要这句

entry.State = System.Data.EntityState.Unchanged;

//0.2标识 实体对象 某些属性 已经被修改了

entry.Property("ATitle").IsModified = true;

entry.Property("AContent").IsModified = true;

//3.跟新到数据库

db.SaveChanges();

感谢你能够认真阅读完这篇文章,希望小编分享的"EF如何直接更新数据"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

对象 数据 实体 状态 属性 包装 查询 数据库 篇文章 管理 更新 语句 生成 同时 容器 手动 代理 附加 难受 价值 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 亿人帮互联网科技有限公司 重生之互联网科技帝国 科技和互联网公司 万易互联网科技有限公司 科技创新互联网企业 大白互联网科技 开启互联网科技时代小说 互联网汽车科技小镇 常德市电业局互联网科技部 广州恒生互联网科技有限 辽宁互联网新科技 互联网媒体平台算高科技产业 企晟互联网信息科技有限公司 互联网科技和法律行业 众安科技工业互联网合作 合肥互联网科技公司公章图片 上海京穆互联网科技有限公司 风投北京互联网科技 版纳互联网科技选哪家 科技信息时代互联网发展 盈实互联网科技 互联网金融科技创新 开启互联网科技时代小说 福建科技产业互联网发展 互联网科技公司有风险吗 洛阳昕诺飞互联网科技有限公司 天津腾达互联网科技有限公司 长沙互联网科技 西安有哪些互联网高科技企业 绵阳真晨互联网科技有限公司
0