博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EF 直接修改数据,不再查询数据库
阅读量:6773 次
发布时间:2019-06-26

本文共 1634 字,大约阅读时间需要 5 分钟。

public int UpData(T model, params string[] proNames)        {                          //4.1将 对象 添加到 EF中                 DbEntityEntry entry = null;                var set = db.Set
().Find(DbContextExtensions.GetEntityKey(db, model)); if (set != null) { db.Entry
(set).State = EntityState.Detached; } entry = db.Entry
(model); //4.2先设置 对象的包装 状态为 Unchanged entry.State = EntityState.Unchanged; //4.3循环 被修改的属性名 数组 foreach (string proName in proNames) { //4.4将每个 被修改的属性的状态 设置为已修改状态;后面生成update语句时,就只为已修改的属性 更新 entry.Property(proName).IsModified = true; } return db.SaveChanges(); }

  

public static class DbContextExtensions    {        public static int GetEntityKey(this DbContext context, object entity)        {            try            {                string name = entity.GetType().ToString().Replace("Model.","");                              var adapter = context as IObjectContextAdapter;                EntityKey enkey = adapter.ObjectContext.CreateEntityKey(name, entity);                string id = enkey.EntityKeyValues[0].Value.ToString();                return int.Parse(id);            }            catch            {                return 0;            }        }    }

  

转载于:https://www.cnblogs.com/lkd3063601/p/5032870.html

你可能感兴趣的文章
《音乐达人秀:Adobe Audition实战200例》——实例15 用“穿插录音”修复唱错的几句...
查看>>
《数据科学R语言实践:面向计算推理与问题求解的案例研究法》一一 1.1 引言...
查看>>
白宫公布联邦开源代码政策
查看>>
抽象类与接口的区别
查看>>
《Raspberry Pi用户指南》——1.1 ARM vs. x86
查看>>
《Python硬件编程实战》——1.4 Python的应用
查看>>
EasyIOS: 如何提升 iOS 开发效率
查看>>
《DevOps实战:VMware管理员运维方法、工具及最佳实践》——第3章 建立DevOps配置管理测试环境 3.1用AutoLab进行环境配给...
查看>>
Java NIO系列教程(三) Buffer
查看>>
《JavaScript面向对象编程指南(第2版)》——1.4 展望未来
查看>>
chrome好用插件和第三方工具
查看>>
测者的性能测试手册:一分钟掌握LoadRunner关联函数应该放在那
查看>>
SpringBoot+MySQL+MyBatis的入门教程
查看>>
Windows下的开发辅助神器——Chocolate Package Manager
查看>>
阿里云大数据认证——基于阿里云数加构建企业级数据分析平台-课堂笔记
查看>>
python sequence序列
查看>>
Git基础知识详解
查看>>
JavaScript 事件委托详解 | 掘金技术征文
查看>>
自定义表单自动填充样式
查看>>
基于 react, redux 最佳实践构建的 2048
查看>>