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:
Siga o procedimento em Como: Executar uma consulta que retorna resultados PrimitiveType.
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