Example #1
0
        public bool?Update(T entity, params object[] keyValues)
        {
            var entry = context.Entry(entity);

            if (keyValues.Length > 0)
            {
                if (entry.State == EntityState.Detached)
                {
                    T attached = _entity.Find(keyValues);
                    if (attached != null)
                    {
                        var attachedEntry = context.Entry(attached);
                        attachedEntry.CurrentValues.SetValues(entity);
                    }
                    else
                    {
                        entry.State = EntityState.Modified;
                    }
                }
            }
            else
            {
                entry.State = EntityState.Modified;
            }
            return(SaveChanges());
        }