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.Decimalkö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 Decimalunterstü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:

  1. Verwenden Sie die Vorgehensweise unter Ausführen einer Abfrage, die PrimitiveType-Ergebnisse zurückgibt.

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

Siehe auch