CAST (Entity SQL)
Consente di convertire un'espressione da un tipo di dati a un altro.
Sintassi
CAST ( expression AS data_type )
Argomenti
expression
Qualsiasi espressione valida che è possibile convertire in data_type
.
data_type
Tipo di dati di destinazione fornito dal sistema. Deve trattarsi di un tipo primitivo (scalare). Il tipo data_type
usato dipende dall'ambito della query. Se una query viene eseguita con EntityCommand, il tipo di dati è un tipo definito nel modello concettuale. Per altre informazioni, vedere CSDL Specification. Se una query viene eseguita con ObjectQuery<T>, il tipo di dati è un tipo CLR (Common Language Runtime).
Valore restituito
Restituisce lo stesso valore di data_type
.
Osservazioni:
La semantica dell'espressione CAST è simile a quella dell'espressione CONVERT di Transact-SQL. L'espressione CAST viene usata per convertire un valore di un tipo in un valore di un altro tipo.
CAST( e as T )
Se e è di tipo S, e S è convertibile in T, l'espressione precedente è un'espressione CAST valida. T deve essere un tipo primitivo (scalare).
Quando si esegue il cast a Edm.Decimal
, è possibile fornire i valori dei facet di precisione e scala. Se non vengono forniti in modo esplicito, i valori predefiniti per la precisione e la scala sono 18 e 0, rispettivamente. In particolare, gli overload seguenti sono supportati per Decimal
:
CAST( d as Edm.Decimal );
CAST( d as Edm.Decimal(precision) );
CAST( d as Edm.Decimal(precision, scale) );
L'utilizzo di un'espressione CAST è considerato una conversione esplicita. Le conversioni esplicite possono comportare il troncamento dei dati o la perdita di precisione.
Nota
L'operatore CAST è supportato solo per tipi primitivi e tipi di membro di enumerazione.
Esempio
Nella query Entity SQL seguente viene usato l'operatore CAST per eseguire il cast di un'espressione da un tipo di dati a un altro. La query è basata sul modello Sales di AdventureWorks. Per compilare ed eseguire questa query, effettuare le operazioni seguenti:
Seguire la procedura descritta in Procedura: Eseguire una query che restituisce risultati PrimitiveType.
Passare la query seguente come argomento al metodo
ExecutePrimitiveTypeQuery
:
SELECT VALUE cast(p.ListPrice as Edm.Int32)
FROM AdventureWorksEntities.Products as p order by p.ListPrice