传入一个实体 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;
}
}

                解决完瞬间 晴天了

分享给大家

最新文章

  1. 多条件分页查找(SQL拼接方法)
  2. LNMP虚拟机开发环境配置--vagrant+virtualbox+ubuntu14.04
  3. JDK source 之 ArrayList 需要注意事项
  4. Object.create() 和 __proto__ 的关系
  5. PRML读书会第十三章 Sequential Data(Hidden Markov Models,HMM)
  6. VC++ LoadLibrary失败,错误126(找不到指定的模块)
  7. Android布局_布局概述和LinearLayout布局
  8. Magento架构师的笔记-----Magento显示当前目录的父分类和子分类的分类名
  9. Oracle查询出最最近一次的一条记录
  10. android从应用到驱动之—camera(2)---cameraHAL的实现
  11. PHP数组的操作
  12. 详解Makefile 函数的语法与使用
  13. android:TextAppearance.Material.Widget.Button.Inverse找不到或者报错问题
  14. C#文本文件或其他文件新内容追加
  15. H5学习第二周
  16. 029 c3p0的小测试
  17. python3笔记(三)if...else、if...elif...else
  18. hive列转行
  19. Heist
  20. ubuntu配置默认python版本并安装pip

热门文章

  1. 类组件(Class component)和函数式组件(Functional component)之间有何不同
  2. Anaconda 32在windows下安装gensim
  3. Jenkins+Harbor+Docker发布
  4. [flask-sqlalchemy]倒序查询结果
  5. LoadRunner参数化使用mysql数据源
  6. python 生成excel,并下载到本地
  7. MJRefresh实现请求数据列表不满一页,或者请求数据为空时,不显示footer文字
  8. myeclipse_2017_CI_8安装与破解
  9. 基于高斯分布的异常检测(Anomaly Detection)算法
  10. 应用安全 - 免杀 - 工具 - the-backdoor-factory - 使用|命令 - 汇总