CAST (Entity SQL)
Convertit une expression d'un type de données à un autre.
CAST ( expression AS data_type )
Arguments
- expression
Toute expression valide convertible en data_type.
- data_type
Type de données cible fourni par le système. Il doit s'agir d'un type primitif (scalaire). Le type de données data_type utilisé dépend de l'espace de requête. Si une requête est exécutée avec la classe EntityCommand, le type de données est un type défini dans le modèle conceptuel. Pour plus d'informations, consultez Spécification CSDL. Si une requête est exécutée avec la classe ObjectQuery, le type de données est un type CLR (Common Language Runtime).
Valeur de retour
Retourne la même valeur que data_type.
Notes
L'expression de cast a une sémantique similaire à l'expression Transact-SQL CONVERT. L'expression de cast sert à convertir une valeur d'un type en valeur d'un autre type.
CAST( e as T )
Si e est de type S et que S est convertible en T, l'expression ci-dessus est une expression de cast valide. T doit correspondre à un type primitif (scalaire).
Les valeurs des facettes Precision et Scale peuvent être éventuellement fournies lors de la conversion en Edm.Decimal. Si elles ne sont pas explicitement fournies, les valeurs par défaut des facettes Precision et Scale sont respectivement 18 et 0. Plus spécifiquement, les surcharges suivantes sont prises en charge pour Decimal :
CAST( d as Edm.Decimal );
CAST( d as Edm.Decimal(precision) );
CAST( d as Edm.Decimal(precision, scale) );
L'utilisation d'une expression de cast est considérée comme une conversion explicite. Les conversions explicites peuvent tronquer des données ou entraîner une perte de précision.
Remarque : |
---|
CAST n'est pris en charge que sur les types primitifs et les types de membres d'énumération. |
Exemple
La requête Entity SQL ci-dessous utilise l'opérateur CAST pour convertir une expression d'un type de données à une autre. Cette requête est basée sur le modèle de vente AdventureWorks Sales Model. Pour compiler et exécuter cette requête, procédez comme suit :
Suivez la procédure indiquée dans Procédure : exécuter une requête qui retourne des résultats PrimitiveType (EntityClient).
Passez à la méthode
ExecutePrimitiveTypeQuery
la requête suivante en tant qu'argument :
SELECT VALUE cast(p.ListPrice as Edm.Int32)
FROM AdventureWorksEntities.Products as p order by p.ListPrice