CAST (Entity SQL)
Konvertiert einen Ausdruck von einem Datentyp in einen anderen
Syntax
CAST ( expression AS data_type )
Argumente
expression
: Jeder gültige Ausdruck, der in data_type
konvertierbar ist.
data_type
: Der vom Zielsystem angegebene Datentyp. Dabei muss es sich um einen primitiven (skalaren) Typ handeln. Der verwendete data_type
hängt von der Abfrageumgebung ab. Wird eine Abfrage mit dem EntityCommandausgeführt, ist der Datentyp ein im konzeptionellen Modell definierter Typ. Weitere Informationen finden Sie unter CSDL Specification. Wenn eine Abfrage mit ObjectQuery<T>ausgeführt wird, ist der Datentyp ein CLR-Typ.
Rückgabewert
Gibt denselben Wert zurück wie data_type
.
Bemerkungen
Der CAST-Ausdruck verfügt über eine ähnliche Semantik wie der Transact-SQL-Ausdruck CONVERT. Der CAST-Ausdruck wird zum Konvertieren eines Werts von einem Typ in einen Wert von einem anderen Typ verwendet.
CAST( e as T )
Wenn "e" vom Typ "S" ist und "S" zu "T" konvertierbar ist, ist der obige Ausdruck ein gültiger Umwandlungsausdruck. "T" muss dabei ein primitiver (skalarer) Typ sein.
Beim Umwandeln in Edm.Decimal
können Werte für die Facets der Genauigkeit und der Dezimalstellenanzahl bereitgestellt werden. Werden keine expliziten Angaben gemacht, sind die Standardwerte für Genauigkeit und Dezimalstellenanzahl 18 bzw. 0. Insbesondere werden folgende Überladungen von Decimal
unterstützt:
CAST( d as Edm.Decimal );
CAST( d as Edm.Decimal(precision) );
CAST( d as Edm.Decimal(precision, scale) );
Die Verwendung eines Umwandlungsausdrucks wird als explizite Konvertierung aufgefasst. Explizite Konvertierungen können Daten abschneiden oder zu Genauigkeitsverlust führen.
Hinweis
CAST wird nur für primitive Typen und Enumerationsmembertypen unterstützt.
Beispiel
Die folgende Entity SQL-Abfrage verwendet den CAST-Operator, um einen Ausdruck eines Datentyps in einen anderen umzuwandeln. Diese Abfrage beruht auf dem "AdventureWorks Sales"-Modell. Führen Sie folgende Schritte aus, um diese Abfrage zu kompilieren und auszuführen:
Verwenden Sie die Vorgehensweise unter Ausführen einer Abfrage, die PrimitiveType-Ergebnisse zurückgibt.
Übergeben Sie die folgende Abfrage als Argument an die
ExecutePrimitiveTypeQuery
-Methode:
SELECT VALUE cast(p.ListPrice as Edm.Int32)
FROM AdventureWorksEntities.Products as p order by p.ListPrice