Недавно я работал над проектом в 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,
}
};
Автор: Лаура Фрезе| Ссылка на блог на сайте