Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public T UpdatePartial(object item)
        {
            var keys    = _memberResolver.GetKeyPropertyValues(item).ToArray();
            var current = Get(keys);

            _memberResolver.ApplyPartial(current, item);
            Update(current);
            return(current);
        }
Ejemplo n.º 3
0
        public virtual T UpdatePartial(object item)
        {
            var key  = _memberResolver.GetKeyPropertyValues(item).ToArray();
            var orig = Get(key);

            _memberResolver.ApplyPartial(orig, item);
            Update(orig);
            return(orig);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        /// <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);
        }
Ejemplo n.º 6
0
        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);
        }