Compartilhar via


CAST (Entity SQL)

Converte uma expressão de um tipo de dados em outro.

Sintaxe

CAST ( expression AS data_type )

Argumentos

expression Qualquer expressão válida que seja conversível para data_type.

data_type O tipo de dados fornecido pelo sistema de destino. Deve ser um tipo primitivo (escalar). O data_type usado depende do espaço de consulta. Se uma consulta for executada com o EntityCommandtipo de dados, o tipo de dados será um tipo definido no modelo conceitual. Para obter mais informações, consulte Especificação CSDL. Se uma consulta for executada com ObjectQuery<T>, o tipo de dados será um tipo CLR (Common Language Runtime).

Valor de retorno

Retorna o mesmo valor que data_type.

Observações

A expressão de conversão tem semântica semelhante à expressão CONVERT Transact-SQL. A expressão de conversão é usada para converter um valor de um tipo em um valor de outro tipo.

CAST( e as T )

Se e for de algum tipo S e S for conversível para T, a expressão acima será uma expressão de conversão válida. T deve ser um tipo primitivo (escalar).

Os valores para as facetas de precisão e escala podem, opcionalmente, ser fornecidos ao converter em Edm.Decimal. Se não for fornecido explicitamente, os valores padrão para precisão e escala serão 18 e 0, respectivamente. Especificamente, há suporte para as seguintes sobrecargas para Decimal:

  • CAST( d as Edm.Decimal );

  • CAST( d as Edm.Decimal(precision) );

  • CAST( d as Edm.Decimal(precision, scale) );

O uso de uma expressão de conversão é considerado uma conversão explícita. Conversões explícitas podem truncar dados ou perder a precisão.

Observação

O CAST só tem suporte em tipos primitivos e tipos de membro de enumeração.

Exemplo

A consulta SQL de entidade a seguir usa o operador CAST para converter uma expressão de um tipo de dados para outro. A consulta é baseada no Modelo de Vendas adventureworks. Para compilar e executar essa consulta, siga estas etapas:

  1. Siga o procedimento em How to: Execute a Query that Returns PrimitiveType Results.

  2. Passe a consulta a seguir como um argumento para o ExecutePrimitiveTypeQuery método:

SELECT VALUE cast(p.ListPrice as Edm.Int32)
    FROM AdventureWorksEntities.Products as p order by p.ListPrice

Consulte também