ArcGIS Pro 3.0 API Reference Guide
ArcGIS.Core.Data Namespace / Version Class / GetParent Method
Example

GetParent Method (Version)
Gets this version's parent version. This method must be called on the MCT. Use QueuedTask.Run.
Syntax
public Version GetParent()

Return Value

This version's parent version if it has a parent; otherwise, null.
Exceptions
ExceptionDescription
A geodatabase-related exception has occurred.
This method or property must be called within the lambda passed to QueuedTask.Run
Example
Reconciling and Posting a Version with its Parent in separate edit sessions
public void ReconcileAndPost(Geodatabase geodatabase)
{
  // Get a reference to our version and our parent
  if (geodatabase.IsVersioningSupported())
  {
    using (VersionManager versionManager = geodatabase.GetVersionManager())
    using (Version currentVersion = versionManager.GetCurrentVersion())
    using (Version parentVersion = currentVersion.GetParent())
    {

      //// Create a ReconcileDescription object
      //At 2.x - 
      //ReconcileDescription reconcileDescription = new ReconcileDescription(parentVersion);
      //reconcileDescription.ConflictResolutionMethod = ConflictResolutionMethod.Continue; // continue if conflicts are found
      //reconcileDescription.WithPost = true;

      //// Reconcile and post
      //ReconcileResult reconcileResult = currentVersion.Reconcile(reconcileDescription);

      // ReconcileResult.HasConflicts can be checked as-needed

      // Create a ReconcileOptions object
      var reconcileOptions = new ReconcileOptions(parentVersion);
      reconcileOptions.ConflictResolutionMethod = ConflictResolutionMethod.Continue; // continue if conflicts are found
      reconcileOptions.ConflictDetectionType = ConflictDetectionType.ByRow; //Default
      reconcileOptions.ConflictResolutionType = ConflictResolutionType.FavorTargetVersion;//or FavorEditVersion

      // Reconcile
      ReconcileResult reconcileResult = currentVersion.Reconcile(reconcileOptions);
      if (!reconcileResult.HasConflicts)
      {
        //No conflicts, perform the post
        var postOptions = new PostOptions(parentVersion);
        //var postOptions = new PostOptions(); for default version
        postOptions.ServiceSynchronizationType = ServiceSynchronizationType.Synchronous;//Default
        currentVersion.Post(postOptions);
      }

    }
  }
}
Reconciling and Posting a Version with its Parent in the same edit session
public void ReconcileAndPost2(Geodatabase geodatabase)
{
  // Get a reference to our version and our parent
  if (geodatabase.IsVersioningSupported())
  {
    using (VersionManager versionManager = geodatabase.GetVersionManager())
    using (Version currentVersion = versionManager.GetCurrentVersion())
    using (Version parentVersion = currentVersion.GetParent())
    {

      //// Create a ReconcileDescription object
      //At 2.x - 
      //ReconcileDescription reconcileDescription = new ReconcileDescription(parentVersion);
      //reconcileDescription.ConflictResolutionMethod = ConflictResolutionMethod.Continue; // continue if conflicts are found
      //reconcileDescription.WithPost = true;

      //// Reconcile and post
      //ReconcileResult reconcileResult = currentVersion.Reconcile(reconcileDescription);

      // ReconcileResult.HasConflicts can be checked as-needed

      // Create a ReconcileOptions object
      var reconcileOptions = new ReconcileOptions(parentVersion);
      reconcileOptions.ConflictResolutionMethod = ConflictResolutionMethod.Continue; // continue if conflicts are found
      reconcileOptions.ConflictDetectionType = ConflictDetectionType.ByRow; //Default
      reconcileOptions.ConflictResolutionType = ConflictResolutionType.FavorTargetVersion;//or FavorEditVersion
      
      var postOptions = new PostOptions(parentVersion);
      //var postOptions = new PostOptions(); for default version
      postOptions.ServiceSynchronizationType = ServiceSynchronizationType.Synchronous;//Default

      // Reconcile
      ReconcileResult reconcileResult = currentVersion.Reconcile(reconcileOptions, postOptions);
      if (reconcileResult.HasConflicts)
      {
        //TODO resolve conflicts

      }

    }
  }
}
Working with Versions
public async Task WorkingWithVersions()
{
  await ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
  {
    using (Geodatabase geodatabase = new Geodatabase(new DatabaseConnectionFile(new Uri("path\\to\\sde\\file"))))
    using (VersionManager versionManager = geodatabase.GetVersionManager())
    {
      IReadOnlyList<Version> versionList = versionManager.GetVersions();

      //The default version will have a null Parent
      Version defaultVersion = versionList.First(version => version.GetParent() == null);

      IEnumerable<Version> publicVersions = versionList.Where(
        version => version.GetAccessType() == VersionAccessType.Public);
      Version qaVersion = defaultVersion.GetChildren().First(
        version => version.GetName().Contains("QA"));

      Geodatabase qaVersionGeodatabase = qaVersion.Connect();

      FeatureClass currentFeatureClass = geodatabase.OpenDataset<FeatureClass>("featureClassName");
      FeatureClass qaFeatureClass = qaVersionGeodatabase.OpenDataset<FeatureClass>("featureClassName");
    }
  });
}
Requirements

Target Platforms: Windows 11, Windows 10, Windows 8.1

ArcGIS Pro version: 2.0 or higher.
See Also