直接使用提交过来的类来更新字段EntityState.Modified并过滤null值的方法

public T Update<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;
        }
 foreach (PropertyInfo p in codeRuleEntity.GetType().GetProperties())
  {
    if (p.GetValue(codeRuleEntity) == null)
     {
          db.Entry(codeRuleEntity).Property(p.Name).IsModified = true;
     }
  }
db.Entry(codeRuleEntity).State = EntityState.Modified;
时间: 2024-10-25 23:25:12

直接使用提交过来的类来更新字段EntityState.Modified并过滤null值的方法的相关文章

iOS开发——model类模板(过滤null和ID)

        说明:model类模板已默认过滤null值,附加特殊情况的关键字ID名的冲突(需手动去掉注释代码).MyMessageModel为示例的名字.可以自己随便起. 1.自己创建一个继承与NSObject的类,用于当model数据模型用.然后在.h文件中根据接口文档或者json返回数据的添加相应属性.    并复制以下model类模板代码.h文件的- (instancetype)initWithDictionary:(NSDictionary *)dictionary;方法到自己创建的

Android - Activity类和Manager类的更新通信

Activity类和Manager类的更新通信 本文地址: http://blog.csdn.net/caroline_wendy Activity类和事件管理(Manager)类之间需要进行通信,可以把更新的数据,及时显示在界面. 在更新的管理类StepCounterManager中设置一个接口调用:保证每一次更新,都会调用这个接口. mTest.test(context); 在管理(Manager)类内声明,指明调用接口类的方法: private InterfaceTest mTest; p

Provisioning Services 7.8 入门系列教程之十 通过类自动更新虚拟磁盘

续Provisioning Services 7.8 入门系列教程之九 手动更新虚拟磁盘 本文中介绍的自动更新虚拟磁盘这种更新方法,和前面介绍的手动更新虚拟磁盘的方法一样,也需要通过复制虚拟磁盘副本产生更新后的虚拟磁盘. 本文将重点介绍更新磁盘产生后,如何应用到设备. 在实际生产环境中,有些用户的PVS应用环境可以规模很大,有很多站点,每个站点下有很多设备集合.同时,很难有一时刻所有的计算机都关机,这样给应用更新磁盘代来了很大难度. 再者,管理员在实际更新中,可能会这样的一种需要,对某一些设备需

序列化类外键字段的覆盖,十大接口序列化总结,视图家族

序列化类外键字段的覆盖 """ 1)在序列化类中自定义字段,名字与model类中属性名一致,就称之为覆盖操作 (覆盖的是属性的所有规则:extra_kwargs中指定的简易规则.model字段提供的默认规则.数据库唯一约束等哪些规则) 2)外键覆盖字段用PrimaryKeyRelatedField来实现,可以做到只读.只写.可读可写三种形式 只读:read_only=True 只写:queryset=关联表的queryset, write_only=True 可读可写:que

Linux下搭建SVN服务器及自动更新项目文件到web目录(www)的方法

首先搭建SVN服务器 1,安装SVN服务端 直接用apt-get或yum安装subversion即可(当然也可以自己去官方下载安装) sudo apt-get install subversion 2,创建版本库 svnadmin create /home/myrepos    //这里的文件目录自己随便设置 3,配置svnserve 上述版本库/home/myrepos建立后在文件夹下会生成conf文件夹,进入/home/myrepos/conf下面会有下面3个文件 authz passwd 

redis存储对象,实体类新加字段空指针问题处理

redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的. 一般用缓存对象时,通过序列化存储,在实体类新加字段的时候,反序列化成对象是新加字段会为空,这个问题很容易被忽略,如果自己没有做好处理,上线会有大

Android第五期 - 更新自己的apk本地与网络两种方法

首先是本地: ParseXmlService部分: package com.szy.update; import java.io.InputStream; import java.util.HashMap; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element

mysql 批量更新与批量更新多条记录的不同值实现方法

在mysql中批量更新我们可能使用update,replace into来操作,下面来给各位详细介绍mysql 批量更新与性能吧! mysql更新语句很简单,更新一条数据的某个字段,一般这样写: 复制代码代码如下: UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value'; 如果更新同一字段为同一个值,mysql也很简单,修改下where即可: 复制代码代码如下: UPDATE mytable SET myfie

Centos- Nagios 的Last Check更新时间与当前时间差距分析问题及处理方法总结

故障现象: 2014年6月4日 收到客户邮件说:bjd nagios 的Last Check更新时间与当前时间差距很大 具体处理过程如下: 盲目处理阶段: 想将问题尽快处理掉,所以有点只看问题表象忽略了重点,唉,说多了都是泪. 查询该机器各种log 发现除了一些常规报错信息,没有重要发现. 检查机器磁盘空间,内存,IO,CPU正常. 此问题首次出现,之前未有遇到.通过查询资料得知是由于此文件权限发生变化导致.但是任我怎么修改文件的权限和所属组都不能解决问题.并参考了http://myhat.bl