public virtual void merge(DbEntity dbEntity) { if (string.ReferenceEquals(dbEntity.Id, null)) { throw LOG.mergeDbEntityException(dbEntity); } // NOTE: a proper implementation of merge() would fetch the entity from the database // and merge the state changes. For now, we simply always perform an update. // Supposedly, the "proper" implementation would reduce the number of situations where // optimistic locking results in a conflict. dbEntityCache.putMerged(dbEntity); }