MVC EF 修改 封装类 通用泛型方法(二)

时间:2021-12-14 12:00:38

修改 这个 方法 如下。 排除 null 值。

  /// <summary>
/// 修改 多数 数据, 个别数据除外, proNames 不写 则是 修改全部
/// </summary>
/// <param name="model">要修改的实体对象(对面 过滤null 值)</param>
/// <param name="proNames">不需要要修改的 属性 名称</param>
/// <returns></returns>
public int ModifyWithOutproNames<T>(T model, params string[] proNames) where T : class
{ DbEntityEntry entry = db.Entry<T>(model);
entry.State = EntityState.Unchanged;
var properties = model.GetType().GetProperties();
for (int i = ; i < properties.Length; i++)
{
if (properties[i].PropertyType.Name.Contains("ICollection")// 排除 外键
|| proNames.Contains(properties[i].Name)|| properties[i].GetValue(model, null)==null) continue;
entry.Property(properties[i].Name).IsModified = true;
}
db.Configuration.ValidateOnSaveEnabled = false;
return db.SaveChanges();
}