Partilhar via


CAST (SQL de entidade)

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 em 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 EntityCommand, 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).

Devolver Valor

Devolve o mesmo valor que data_type.

Observações

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

CAST( e as T )

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

Opcionalmente, podem ser fornecidos valores para as facetas de precisão e escala aquando da fundição em Edm.Decimal. Se não forem explicitamente fornecidos, os valores padrão para precisão e escala são 18 e 0, respectivamente. Especificamente, as seguintes sobrecargas são suportadas 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 engessada é considerado uma conversão explícita. Conversões explícitas podem truncar dados ou perder precisão.

Nota

CAST só é suportado em tipos primitivos e tipos de membros de enumeração.

Exemplo

A consulta Entity SQL 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 esta consulta, siga estes passos:

  1. Siga o procedimento em Como: Executar uma consulta que retorna resultados PrimitiveType.

  2. Passe a seguinte consulta 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