EF部分字段修改 自动忽略为null字段
2024-09-04 22:58:20
传入一个实体 student(){id = 1,name = "测试" age = null,sex = null}
下面 是修改的方法
public async Task EditAsync(T model, bool IsSava = true)
{
_Db.Configuration.ValidateOnSaveEnabled = false; //关闭验证
_Db.Entry(model).State = EntityState.Modified; if (IsSava)
{
await _Db.SaveChangesAsync();
_Db.Configuration.ValidateOnSaveEnabled = true;
}
}
这样搞的话 如果有为空的 字段直接 报错了
搞了老半天 当时心情 一万个CNM
然后 我们 来 这样解决
使用反射 获取属性是否 为空的设置 IsModeifde = fase 不为空的设置 IsModefide = true;
看代码吧
public async Task EditAsync(T model, bool IsSava = true)
{
_Db.Configuration.ValidateOnSaveEnabled = false;
_Db.Entry(model).State = EntityState.Modified;
foreach (var item in model.GetType().GetProperties())
{
if (item.GetValue(model) != null)
{
_Db.Entry(model).Property(item.Name).IsModified = true;
}
else
{
_Db.Entry(model).Property(item.Name).IsModified = false;
}
}
if (IsSava)
{
await _Db.SaveChangesAsync();
_Db.Configuration.ValidateOnSaveEnabled = true;
}
}
解决完瞬间 晴天了
分享给大家
最新文章
- 多条件分页查找(SQL拼接方法)
- LNMP虚拟机开发环境配置--vagrant+virtualbox+ubuntu14.04
- JDK source 之 ArrayList 需要注意事项
- Object.create() 和 __proto__ 的关系
- PRML读书会第十三章 Sequential Data(Hidden Markov Models,HMM)
- VC++ LoadLibrary失败,错误126(找不到指定的模块)
- Android布局_布局概述和LinearLayout布局
- Magento架构师的笔记-----Magento显示当前目录的父分类和子分类的分类名
- Oracle查询出最最近一次的一条记录
- android从应用到驱动之—camera(2)---cameraHAL的实现
- PHP数组的操作
- 详解Makefile 函数的语法与使用
- android:TextAppearance.Material.Widget.Button.Inverse找不到或者报错问题
- C#文本文件或其他文件新内容追加
- H5学习第二周
- 029 c3p0的小测试
- python3笔记(三)if...else、if...elif...else
- hive列转行
- Heist
- ubuntu配置默认python版本并安装pip
热门文章
- 类组件(Class component)和函数式组件(Functional component)之间有何不同
- Anaconda 32在windows下安装gensim
- Jenkins+Harbor+Docker发布
- [flask-sqlalchemy]倒序查询结果
- LoadRunner参数化使用mysql数据源
- python 生成excel,并下载到本地
- MJRefresh实现请求数据列表不满一页,或者请求数据为空时,不显示footer文字
- myeclipse_2017_CI_8安装与破解
- 基于高斯分布的异常检测(Anomaly Detection)算法
- 应用安全 - 免杀 - 工具 - the-backdoor-factory - 使用|命令 - 汇总