CONVERSÃO (Entity SQL)

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

Sintaxe

CAST ( expression AS data_type )

Argumentos

expressionQualquer 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 da consulta. Se uma consulta é executada com o EntityCommand, o tipo de dados será um tipo definido no modelo conceitual. Para obter mais informações, confira a especificação do CSDL. Se uma consulta é executada com o ObjectQuery<T>, o tipo de dados será um tipo CLR (Common Language Runtime).

Valor Retornado

Retorna o mesmo valor que data_type.

Comentários

A expressão de conversão 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 for de algum tipo S, e S for conversível para T, a expressão anterior será uma expressão cast válida. T deve ser um tipo primitivo (escalar).

Os valores para as facetas de precisão de escala podem opcionalmente ser fornecidos ao converter para Edm.Decimal. Se não forem fornecidos explicitamente, os valores padrão para precisão e escala serão 18 e 0, respectivamente. Especificamente, as seguintes sobrecargas têm suporte 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 cast é considerado uma conversão explícita. Conversões explícitas podem truncar dados ou perder precisão.

Observação

CAST tem suporte somente em tipos primitivos e tipos de membro 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 essa consulta, siga estas etapas:

  1. Siga o procedimento em Como executar uma consulta que retorna os resultados de PrimitiveType.

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

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

Confira também