CONVERSÃO (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 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:
Siga o procedimento em Como executar uma consulta que retorna os resultados de PrimitiveType.
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