一般的更新代碼是這樣的
public T Update<T>(T entity) where T : ModelBase { var set = this.Set<T>(); set.Attach(entity); this.Entry<T>(entity).State = EntityState.Modified; this.SaveChanges(); return entity; }
但是有時候有更新的時候,如果為null則不更新這字段,這個時候就會有問題了,這個時候用另一個方法。。
public T Update2<T>(T entity) where T : ModelBase { var set = this.Set<T>(); set.Attach(entity); foreach (System.Reflection.PropertyInfo p in entity.GetType().GetProperties()) { if (p.GetValue(entity) != null) { this.Entry<T>(entity).Property(p.Name).IsModified = true; } } this.SaveChanges(); return entity; }