对于实体类型的分段解决方案组件,必须将DoNotIncludeSubcomponents
选项设置为true
. 然后,可以将实体的独特部分一一添加到解决方案中。
将实体“帐户”添加到解决方案“测试”的示例,其中只有属性“帐户编号”:
private static EntityMetadata RetrieveEntity(string entityName, IOrganizationService service)
{
var request = new RetrieveEntityRequest
{
LogicalName = entityName,
EntityFilters = EntityFilters.All
};
return ((RetrieveEntityResponse)service.Execute(request)).EntityMetadata;
}
private static void AddEntityComponent(Guid componentId, int componentType, string solutionName, IOrganizationService service)
{
var request = new AddSolutionComponentRequest
{
AddRequiredComponents = false,
ComponentId = componentId,
ComponentType = componentType,
DoNotIncludeSubcomponents = true,
SolutionUniqueName = solutionName
};
service.Execute(request);
}
IOrganizationService service = factory.CreateOrganizationService(null);
EntityMetadata entity = RetrieveEntity("account", service);
AddEntityComponent(entity.MetadataId.Value, 1, "Test", service);
AddEntityComponent(entity.Attributes.First(a => a.LogicalName == "accountnumber").MetadataId.Value, 2, "Test", service);