Condividi tramite


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:

  1. Seguire la procedura descritta in Procedura: Eseguire una query che restituisce risultati PrimitiveType.

  2. 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

Vedi anche