Partager via


CAST (Entity SQL)

Convertit une expression d’un type de données en un autre.

Syntaxe

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 CSDL Specification. Si une requête est exécutée avec la classe ObjectQuery<T>, 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.

Notes

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 :

  1. Suivez la procédure indiquée dans Comment : Exécuter une requête qui retourne des résultats PrimitiveType.

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

Voir aussi