EF 更新部分字段写法

简介: 原文:EF 更新部分字段写法EF 更新部分字段写法 1、EF默认是查询出来,修改后保存; 2、设置不修改字段的IsModified为false,此方法不需要先从数据库查询出实体来(最优方法):        db.
原文: EF 更新部分字段写法

EF 更新部分字段写法

1、EF默认是查询出来,修改后保存;

2、设置不修改字段的IsModified为false,此方法不需要先从数据库查询出实体来(最优方法):

  

          db.Set<T>().Attach(entity);//将数据用未更改的状态放在上下文中,相当于从数据库读取了该实体

            var loginUser = GetLoginUser();
            entity.ModifyDate = DateTime.Now;
            entity.ModifyId = loginUser.Id;
            entity.ModifyName = loginUser.UserName;

            db.Entry(entity).State = EntityState.Modified;
            db.Entry(entity).Property("CreateId").IsModified = false;
            db.Entry(entity).Property("CreateName").IsModified = false;
            db.Entry(entity).Property("CreateDate").IsModified = false;

           db.SaveChanges();

3、使用 EntityFramework.Extended 扩展,缺点是EF的上下文日志不能捕获执行的sql,此方法也比较麻烦需要逐一例举修改的字段;该扩展还支持批量修改,批量更新,缓存..............

using EntityFramework.Extensions;

  db.Set<SysRole>().Where(c => c.Id == sysRole.Id)
                            .Update(c => new SysRole
                                {
                                    RoleName = sysRole.RoleName,
                                    Level = sysRole.Level,
                                    ModifyDate = DateTime.Now,
                                    ModifyId = loginUser.Id,
                                    ModifyName = loginUser.UserName
                                });

 

目录
相关文章
|
1月前
|
Java
【Java】— —实现人物对象的增、删、改、查(注:对象的删除以逻辑删除为主,在person类中设置“删除状态字段”,字删除该字段时,将状态改为有效。)
【Java】— —实现人物对象的增、删、改、查(注:对象的删除以逻辑删除为主,在person类中设置“删除状态字段”,字删除该字段时,将状态改为有效。)
33 0
|
9月前
|
存储
PG11新特性解读:新增非空默认值字段不需要重写表
PG11新特性解读:新增非空默认值字段不需要重写表
99 1
|
SQL 关系型数据库 MySQL
MySql 使用 NOT IN 返回值包含null值,返回数据不全
MySql 使用 NOT IN 返回值包含null值,返回数据不全
211 0
MySql 使用 NOT IN 返回值包含null值,返回数据不全
|
安全 JavaScript Java
行数据上加一个version版本字段,可以有效防止数据重复更新
行数据上加一个version版本字段,可以有效防止数据重复更新
210 0
行数据上加一个version版本字段,可以有效防止数据重复更新
EF部分字段更新,自动忽略null字段
原文:EF部分字段更新,自动忽略null字段  某个项目里的update代码是类似这样的 public T Update(T entity) where T : ModelBase { var set = this.
1549 0
EF只更新变化的字段
原文:EF只更新变化的字段 摘要 在使用EF的时候,由于表字段较多,所以在更新的时候,想要只更新变化的字段,有没有办法呢? 解决办法 代码片段 public async Task UpdateAsync(T entity, List fieldNames) {...
1156 0
|
大数据 测试技术
【测试记录】EF插入查询性能
介绍     背景什么就不提了,无外乎出现了大数据需要处理。简单的说就是我测试了EF正常的插入以及一个优化小方式而已,然后做了查询记录。其余没有什么,写这篇只是为了记录结果方便以后数据参考吧。 代码介绍: 首先是插入代码常规: EFHelp eFHelp = new EFHelp();...
1006 0