下面 是修改的方法async
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; } }
这样搞的话 若是有为空的 字段直接 报错了ide
搞了老半天 当时心情 一万个CNM 测试
而后 咱们 来 这样解决 spa
使用反射 获取属性是否 为空的设置 IsModeifde = fase 不为空的设置 IsModefide = true; code
看代码吧blog
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; } }
解决完瞬间 晴天了 it
分享给你们 io