本文整理汇总了C#中FeatureDataTable.FindMergeTarget方法的典型用法代码示例。如果您正苦于以下问题:C# FeatureDataTable.FindMergeTarget方法的具体用法?C# FeatureDataTable.FindMergeTarget怎么用?C# FeatureDataTable.FindMergeTarget使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FeatureDataTable
的用法示例。
在下文中一共展示了FeatureDataTable.FindMergeTarget方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: mergeFeatureTables
private void mergeFeatureTables(FeatureDataTable source, FeatureDataTable target)
{
Boolean isTargetEmpty = target.Rows.Count == 0;
if (source.Rows.Count > 0)
{
Object primaryKeyIndex = null;
Object srcLookupKey = createEmptyDataKey();
target.SuspendIndexEvents();
try
{
if (!isTargetEmpty && (target.PrimaryKeyConstraint != null))
{
srcLookupKey = getSourceKeyOrTargetKeyForSource(source, target);
if (getDataKeyHasValue(srcLookupKey))
{
Object rowLookupKey = getDataKeyFromUniqueConstraint(target.PrimaryKeyConstraint);
const DataViewRowState rowState = DataViewRowState.OriginalRows |
DataViewRowState.Added;
primaryKeyIndex = getDataKeySortIndex(rowLookupKey, rowState);
}
}
foreach (FeatureDataRow sourceRow in source.Rows)
{
FeatureDataRow targetRow = null;
if (primaryKeyIndex != null)
{
targetRow = target.FindMergeTarget(sourceRow,
srcLookupKey,
primaryKeyIndex);
}
//mergeFeature(target, sourceRow, targetRow, PreserveChanges);
FeatureDataRow mergedRow = target.MergeRowInternal(sourceRow,
targetRow,
PreserveChanges,
primaryKeyIndex);
// If we are adding the geometry to the row or if the geometry changed
// then we set it here.
if (mergedRow.Geometry == null ||
mergedRow.Geometry.EqualsExact(sourceRow.Geometry))
{
mergedRow.Geometry = sourceRow.Geometry;
}
mergedRow.IsFullyLoaded = mergedRow.IsFullyLoaded || sourceRow.IsFullyLoaded;
}
}
finally
{
target.RestoreIndexEvents(true);
}
}
mergeExtendedProperties(source.ExtendedProperties,
target.ExtendedProperties,
SchemaMergeAction,
PreserveChanges);
}