public virtual T UpdatePartial(object item) { T current = Create(); _memberResolver.ApplyPartial(current, item); // populate ID'd entity current = Hydrate(FindRow(current)); // load existing entity _memberResolver.ApplyPartial(current, item); // update existing entity Update(current); // save changes if (AutoSave) { SaveChanges(); } return(current); }
public T UpdatePartial(object item) { var keys = _memberResolver.GetKeyPropertyValues(item).ToArray(); var current = Get(keys); _memberResolver.ApplyPartial(current, item); Update(current); return(current); }
public virtual T UpdatePartial(object item) { var key = _memberResolver.GetKeyPropertyValues(item).ToArray(); var orig = Get(key); _memberResolver.ApplyPartial(orig, item); Update(orig); return(orig); }
public T UpdatePartial(object item) { var query = CreateQueryByKey(_memberResolver.GetKeyPropertyValues(item).ToArray()); var orig = _collection.FindOne(query); var changed = orig; _memberResolver.ApplyPartial(changed, item); _collection.Save(orig); AutoSaveIfAutoSaveEnabled(); return(changed); }
/// <summary> /// Uses reflection to update a portion of the specified item. /// </summary> /// <param name="item"></param> public virtual T UpdatePartial(object changes) { T target = _dbSet.Find(_memberResolver.GetKeyPropertyValues(changes).ToArray()); _dbSet.Attach(target); _memberResolver.ApplyPartial(target, changes); if (AutoSave) { SaveChanges(); } return(target); }
public virtual T UpdatePartial(object changes) { if (!_memberResolver.KeyPropertyMembers.Any()) { throw new InvalidOperationException("The type does not have a KeyAttribute: " + changes.GetType().FullName); } var key = _memberResolver.GetKeyPropertyValues(changes).Single().ToString(); if (string.IsNullOrEmpty(key)) { throw new MissingPrimaryKeyException("Invalid key in " + changes.GetType().FullName); } IDocumentSession session = GetSession(); var target = session.Load <T>(key); _memberResolver.ApplyPartial(target, changes); session.Store(target); if (AutoSave) { SaveChanges(); } return(target); }