CAST (Entity SQL)
Consente di convertire un'espressione da un tipo di dati a un altro.
CAST ( expression AS data_type )
Argomenti
- expression
Qualsiasi espressione valida che è possibile convertire in data_type.
- data_type
Tipo di dati di sistema di destinazione. Deve trattarsi di un tipo primitivo (scalare). Il tipo data_type utilizzato dipende dall'ambito della query. Se una query viene eseguita con EntityCommand, il tipo di dati è un tipo definito nel modello concettuale. Per ulteriori informazioni, vedere Specifiche CSDL. Se una query viene eseguita con ObjectQuery, 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 Transact-SQL . L'espressione CAST viene utilizzata 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 utilizzato 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 indicata in Procedura: eseguire una query che restituisce risultati PrimitiveType (EntityClient).
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