Недавно я работал над проектом в Kentico 10, который требовал некоторой разработки пользовательских модулей. У некоторых классов в пользовательском модуле были отношения родитель-потомок, которые необходимо было настроить программно. Поскольку мне нужно было записывать задачи для объектов настраиваемого модуля в промежуточной стадии, мне нужно было обеспечить синхронизацию дочерних объектов с родительским при синхронизации родителя, а не создавать отдельные задачи для каждого из дочерних объектов по мере их вставки или обновлено. К сожалению, инструкции о том, как это сделать, не были ясны в документации. В этом посте я покажу вам, как программно изменить дочерние классы, чтобы они синхронизировались с родительскими.

Раздел информации о типе файла Parent Info.cs

public static ObjectTypeInfo TYPEINFO = new ObjectTypeInfo(typeof(CompanyInfoProvider), OBJECT_TYPE, 
"CompanyOverview.Company", "CompanyID", "CompanyLastModified", "CompanyGUID", "CompanyName", 
"CompanyDisplayName", null, null, null, null)
{
    ModuleName = "CompanyOverview",
    TouchCacheDependencies = true,   
    SynchronizationSettings =
    {
        LogSynchronization = SynchronizationTypeEnum.LogSynchronization, // Enables logging of staging tasks for changes made to Office objects
        ObjectTreeLocations = new List()
        {
            // Creates a new category in the 'Global objects' section of the staging object tree
            new ObjectTreeLocation(GLOBAL, "CompanyOverview")
        }
    }
};

Раздел информации о типе Child Info.cs:

public static ObjectTypeInfo TYPEINFO = new ObjectTypeInfo(typeof(OfficeInfoProvider), OBJECT_TYPE, 
"CompanyOverview.Office", "OfficeID", "OfficeLastModified", "OfficeGUID", "OfficeName", "OfficeDisplayName", 
null, null, null, null)
{
    ParentIDColumn = "CompanyID",
    ParentObjectType = CompanyInfo.OBJECT_TYPE,
    ModuleName = "CompanyOverview", 
    SynchronizationSettings =
    {
        LogSynchronization = SynchronizationTypeEnum.TouchParent, 
        IncludeToSynchronizationParentDataSet = IncludeToParentEnum.Complete,
        
    }
};

Автор: Лаура Фрезе| Ссылка на блог на сайте