传入实体修改
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; } }
解决完瞬间 晴天了
分享给大家 ...............................................................................................................................................................................................................