EF部分字段更新,忽略为null字段

一般的更新代码是这样的

public T Update<T>(T entity) where T : ModelBase
        {
            var set = this.Set<T>();
            set.Attach(entity);
            this.Entry<T>(entity).State = EntityState.Modified;
            this.SaveChanges();
            return entity;
        }

但是有时候有更新的时候,如果为null则不更新这字段,这个时候就会有问题了,这个时候用另一个方法。。

public T Update2<T>(T entity) where T : ModelBase
        {
            var set = this.Set<T>();
            set.Attach(entity);
            foreach (System.Reflection.PropertyInfo p in entity.GetType().GetProperties())
            {
                if (p.GetValue(entity) != null)
                {
                    this.Entry<T>(entity).Property(p.Name).IsModified = true;
                }
            }
            this.SaveChanges();
            return entity;
        }

  

时间: 2024-10-16 19:02:52

EF部分字段更新,忽略为null字段的相关文章

java对象json序列化时候忽略为null的属性

环境: jdk: openjdk11 操作系统: windows 10教育版1903 目的: 如题,当一个对象里有些属性值为null 的不想参与json序列化时,可以添加如下注解 import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonIgnore; //这个是类注解,表示该类实例化的对象里,值为null的字段不参与序列化@JsonInclude(JsonIn

如何把数据库的某个字段更新为另一个字段

update SBD_RETURN_BILL set RB_IS_CONFIRM=1,[email protected]_CONFIRM_DATE,[email protected]_CONFIRM_ORG,[email protected]_CONFIRM_ID,RB_SIGN_DATE=(select SW_CREATE_DATE from  SBD_WAYBILL where SW_ID=RB_SB_ID)

4、CRM2011编程实战——将窗体中指定控件的值做处理后更新到另一个字段中

需求:将接报时间加上到期提醒时间后得到的值,更新到字段"到期截止时间" Js调用: //设置到期截止时间 function setDeadLine(){ var recordId = Xrm.Page.data.entity.getId(); var entityName = Xrm.Page.data.entity.getEntityName(); var reportedTime = Xrm.Page.getControl("hxcs_fdatetimeofrequest

将一个表的字段更新到另一个表中去

描述 做一个需求需要记录用户留下签字意见时的职位信息,并且签字意见中留下的职位信息不随他的职位的调动变化而变化.在标准产品的签字意见表里面没有记录职位信息的字段,这就需要我们添加一个字段用于存储当前操作者的职位信息,对于新的数据我们可以在插入签字意见的时候一并插入.但是对于历史数据,我们就需要通过SQL来更新,这样在升级客户系统的时候直接运行一个SQL脚本就将历史数据的职位字段更新为记录的操作者当前的职位信息. 假设表HRM表示用户表,结构如下: 字段名字 类型 备注 ID NUMBER 用户i

Entity Framework使用EntityState和Attach来保存数据变化以及更新实体的个别字段

在使用Entity Framework作为ORM来存取数据的过程中,最常规的操作就是对数据对象的更新.本文将会包含如何Attach Entity到一个数据Context中,以及如何使用EntityState字段状态来保存数据变化. 文本参考了如下两篇文章: https://msdn.microsoft.com/en-us/data/jj592676 https://stackoverflow.com/questions/30987806/dbset-attachentity-vs-dbconte

【优化】Mysql字段尽可能用NOT NULL

下面咱们要聊的是 MySQL 里的 null,在大量的 MySQL 优化文章和书籍里都提到了字段尽可能用NOT NULL,而不是NULL,除非特殊情况.但却都只给结论不说明原因,犹如鸡汤不给勺子一样,让不少初学者对这个结论半信半疑或者云里雾里.本文今天就详细的剖析下使用 Null 的原因,并给出一些不用 Null 的理由. 1.NULL 为什么这么多人用? NULL是创建数据表时默认的,初级或不知情的或怕麻烦的程序员不会注意这点. 很多人员都以为not null 需要更多空间,其实这不是重点.

go json null字段的转换

最近试了试go中对json null字段进行转换,代码如下: struct 转 json: package main import ( "encoding/json" "fmt" "os" ) var d = []byte(`{ "world":[{"data": 2251799813685312}, {"data": null}]}`) type jsonobj struct{ Wor

MySQL中order by语句对null字段的排序

默认情况下,MySQL将null算作最小值. 如果想要手动指定null的顺序,可以使用: 将null强制放在最前: if(isnull(字段名),0,1) asc   //asc可以省略 将null强制放在最后 if(isnull(字段名),0,1) dsc if(isnull(字段名),1,0)  asc   //asc可以省略 对于这种使用方式的理解: 以if(isnull(字段名),0,1)为例,它的意思是将该字段根据是否为null值分成两部分,值为null行相当于得到了一个隐含的排序属性

模块管理常规功能自定义系统的设计与实现(52--功能更新[2] 对百分比字段的操作)

功能更新(2)  对百分比字段的操作 百分比数据,或者是比率数据是一个比较难处理的字段,难点并不在于单条记录之中,而是在于汇总和分类汇总的时候. 先来看看我系统中的一个模块中的一个比率字段: 上图中的  已支付比例,这个字段是  已支付金额 / 结算金额,这个字段在此合同模块中可以作为一个计算字段来保存在数据库中,甚至可以不保存在数据库中,直接在bean里作为一个计算的属性. 现在问题就来了,如果要计算所有合同的已支付比例,那么就不是简单加起来的问题了,要把分子和分母分别加起来再除才会得到总计的