Dematerialize() публичный Метод

public Dematerialize ( bool includeChildren = true ) : void
includeChildren bool
Результат void
Пример #1
0
        /// <summary>
        /// Applies the submitted changes to the working copy and persists the changes but does <b>NOT</b> check-in the dataset.
        /// The changes are coming in the form of the tuples to be added, deleted, or editedVersion.
        /// The general procedure of making changes is CheckOut, Edit (one or more times), CheckIn or Rollback.
        /// there is no need to pass metadata, extendedPropertyValues, contentDescriptors .. as they can be assigned to the working copy version before sending it to the method.
        /// Just if they are null, they will not affect the version. 
        /// The general procedure is CheckOut, Edit*, CheckIn or Rollback
        /// While the dataset is checked out, all the changes go to the latest+1 version which acts like a working copy
        /// </summary>
        /// <param name="workingCopyDatasetVersion">The working copy version that accepts the changes.</param>
        /// <param name="createdTuples">The list of the new tuples to be added to the working copy.</param>
        /// <param name="editedTuples">The list of the tuples whose values have been changed and the changes should be considered in the working copy.</param>
        /// <param name="deletedTuples">The list of existing tuples to be deleted from the working copy.</param>
        /// <param name="unchangedTuples">to be removed</param>
        /// <returns>The working copy having the changes applied on it.</returns>
        public DatasetVersion EditDatasetVersion(DatasetVersion workingCopyDatasetVersion,
            List<DataTuple> createdTuples, ICollection<DataTuple> editedTuples, ICollection<long> deletedTuples, ICollection<DataTuple> unchangedTuples = null
            //,ICollection<ExtendedPropertyValue> extendedPropertyValues, ICollection<ContentDescriptor> contentDescriptors
            )
        {
            workingCopyDatasetVersion.Dematerialize(false);

            //preserve metadata and XmlExtendedPropertyValues for later use
            var workingCopyDatasetVersionId = workingCopyDatasetVersion.Id;
            var metadata = workingCopyDatasetVersion.Metadata;
            var xmlExtendedPropertyValues = workingCopyDatasetVersion.XmlExtendedPropertyValues;
            var contentDescriptors = workingCopyDatasetVersion.ContentDescriptors;

            // do not move them to editDatasetVersion function
            this.DatasetRepo.Evict();
            this.DatasetVersionRepo.Evict();
            this.DataTupleRepo.Evict();
            this.DataTupleVerionRepo.Evict();
            this.DatasetRepo.UnitOfWork.ClearCache();

            // maybe its better to use Merge function ...
            workingCopyDatasetVersion = this.DatasetVersionRepo.Get(workingCopyDatasetVersionId);
            if (metadata != null)
                workingCopyDatasetVersion.Metadata = metadata;
            if (xmlExtendedPropertyValues != null)
                workingCopyDatasetVersion.XmlExtendedPropertyValues = xmlExtendedPropertyValues;
            if (contentDescriptors != null)
                workingCopyDatasetVersion.ContentDescriptors = contentDescriptors;

            return editDatasetVersion(workingCopyDatasetVersion, createdTuples, editedTuples, deletedTuples, unchangedTuples);
        }