对于实体类型的分段解决方案,必须将DoNotIncludeSubcomponents 选项设置为true 的解决方案添加到解决方案中。然后,可以将实体的独特部分一一添加到解决方案中。
将实体“account”添加到解决方案“Test”中的示例,只有属性“accountnumber”:
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);