Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Use colunas de imagem para armazenar dados de imagem. As colunas de imagem são otimizadas para o armazenamento de dados binários. O Dataverse não salva esses dados no armazenamento de dados relacional, o que melhora o desempenho e reduz o uso da capacidade. Saiba mais sobre a capacidade de armazenamento
Uma tabela personalizada ou personalizável pode ter zero ou mais colunas de imagem. Este artigo é sobre como trabalhar com definições de coluna no código. Para usar dados armazenados nessas colunas, consulte Usar dados de coluna de imagem.
Criar colunas de imagem
A maneira recomendada de criar colunas de imagem é usar o Power Apps e definir suas colunas usando o designer. Mais informações: Colunas de Imagem.
Você também pode criar colunas de imagem usando o SDK do Dataverse para .NET ou usando a API Web. Os exemplos a seguir mostram como:
Use a classe ImageAttributeMetadata junto com a classe CreateAttributeRequest para criar uma coluna de imagem.
public static void CreateImageColumn(IOrganizationService service, string entityLogicalName, string imageColumnSchemaName) {
ImageAttributeMetadata imageColumn = new()
{
SchemaName = imageColumnSchemaName,
DisplayName = new Label("Sample Image Column", 1033),
RequiredLevel = new AttributeRequiredLevelManagedProperty(
AttributeRequiredLevel.None),
Description = new Label("Sample Image Column for ImageOperation samples", 1033),
MaxSizeInKB = 30 * 1024, // 30 MB
CanStoreFullImage = true
};
CreateAttributeRequest createimageColumnRequest = new() {
EntityName = entityLogicalName,
Attribute = imageColumn
};
service.Execute(createimageColumnRequest);
}
Mais informações:
Atualizar colunas de imagem
Além das propriedades herdadas da classe | AttributeMetadata EntityType, você também pode atualizar as propriedades a seguir da classe | ImageAttributeMetadata EntityType.
| Propriedade | Etiqueta | Descrição |
|---|---|---|
MaxSizeInKB |
Tamanho máximo da imagem | Defina esse valor como o menor tamanho de dados utilizável apropriado para seu aplicativo específico. A configuração padrão é 10240, ou 10 MB. O valor máximo é 30720 KB (30 MB). Esse valor não pode ser alterado no Power Apps usando o designer depois de criar a coluna de imagem, mas você pode alterá-la usando a API. |
CanStoreFullImage |
Pode armazenar imagens completas | Quando esse valor é falso, apenas imagens em miniatura estão disponíveis. Imagens completas são armazenadas no armazenamento de arquivos no blob do Azure para reduzir o consumo de armazenamento de dados. Você pode consultar a tabela Configuração de Atributo de Imagem (AttributeImageConfig) para localizar quais colunas de imagem dão suporte a imagens de tamanho completo. Mais informações: detectar quais colunas de imagem dão suporte a imagens de tamanho completo |
IsPrimaryImage |
Coluna de imagem primária | Se a coluna é usada para representar uma linha de tabela em aplicativos. Se houver apenas uma coluna de imagem para uma tabela, esse valor será definido por padrão. Quando outra coluna de imagem já existe para uma tabela, esse valor é ignorado se definido como true ao criar uma nova coluna de imagem. No entanto, você pode atualizar a coluna depois de criá-la para tornar a nova coluna a coluna de imagem primária. IsPrimaryImage não pode ser definida como false, uma exceção é gerada se você tentar. Você deve escolher outra coluna de imagem e definir esse IsPrimaryImage valor como true.Se você excluir uma coluna que é a coluna de imagem primária atual, outra coluna de imagem da tabela será selecionada automaticamente para ser a coluna de imagem primária atual. Você pode consultar a tabela Entity Image Configuration (EntityImageConfig) para saber quais colunas de imagem são as imagens primárias de qualquer tabela. Mais informações: Imagens Primárias |
Observação
Os MaxHeight valores e os MaxWidth valores são sempre 144 e não podem ser alterados. Elas definem o tamanho das imagens em miniatura que são criadas para cada valor de coluna de imagem.
Mais informações:
Recuperar definições de coluna de imagem
Use essas consultas para recuperar definições de coluna de imagem.
O método estático GetImageColumns usa a RetrieveMetadataChangesRequest classe para definir uma consulta para retornar detalhes sobre todas as colunas de imagem no Dataverse ou limitadas a uma tabela específica.
A condição avaliada é se o valor da propriedade AttributeMetadata.AttributeTypeName é igual a AttributeTypeDisplayName.ImageType
/// <summary>
/// Returns the image columns
/// </summary>
/// <param name="service">The IOrganizationService</param>
/// <param name="tableLogicalName">Optional filter by table logical name</param>
static void GetImageColumns(IOrganizationService service, string tableLogicalName = "account")
{
// The Query definition
EntityQueryExpression entityQuery = new EntityQueryExpression()
{
Properties = new MetadataPropertiesExpression("SchemaName","Attributes"),
AttributeQuery = new AttributeQueryExpression()
{
Properties = new MetadataPropertiesExpression(
"SchemaName",
"CanStoreFullImage",
"IsPrimaryImage",
"MaxSizeInKB")
}
};
// Enable optional filtering by table logical name
if (!string.IsNullOrEmpty(tableLogicalName)){
entityQuery.Criteria.Conditions.Add(
new MetadataConditionExpression(
propertyName: "LogicalName",
conditionOperator: MetadataConditionOperator.Equals,
value: tableLogicalName));
}
// Only Image columns
entityQuery.AttributeQuery.Criteria.Conditions.Add(
new MetadataConditionExpression(
propertyName: "AttributeTypeName",
conditionOperator: MetadataConditionOperator.Equals,
value: AttributeTypeDisplayName.ImageType));
// The request
RetrieveMetadataChangesRequest request = new RetrieveMetadataChangesRequest() {
Query = entityQuery
};
// Send the request
var response = (RetrieveMetadataChangesResponse)service.Execute(request);
//Display the results:
response.EntityMetadata.ToList().ForEach(e => {
if (e.Attributes.Count() > 0)
{
Console.WriteLine($"Table: {e.SchemaName}");
e.Attributes.ToList().ForEach(a => {
// To access image column properties
var imageColumn = (ImageAttributeMetadata)a;
Console.WriteLine($"\t{a.SchemaName}");
Console.WriteLine($"\t\tCanStoreFullImage:{imageColumn.CanStoreFullImage}");
Console.WriteLine($"\t\tIsPrimaryImage:{imageColumn.IsPrimaryImage }");
Console.WriteLine($"\t\tMaxSizeInKB:{imageColumn.MaxSizeInKB}");
});
Console.WriteLine();
}
});
}
Mais informações: Definições de esquema de consulta
Restrições com CMK (Chaves Gerenciadas pelo Cliente)
As mesmas restrições que se aplicam às colunas de arquivo também se aplicam às colunas de imagem configuradas para armazenar imagens de tamanho completo. Mais informações: Restrições com BYOK (chave autogerenciada)
Consulte também
Usar dados de coluna de imagem
Trabalhar com definições de coluna de arquivo usando código
Exemplo: Operações de imagem usando o SDK do Dataverse para .NET
Exemplo: Operações de imagem usando a API Web do Dataverse