CAST (Entitets-SQL)
Konverterar ett uttryck av en datatyp till en annan.
Syntax
CAST ( expression AS data_type )
Argument
expression
Alla giltiga uttryck som är konvertibla till data_type
.
data_type
Datatypen som tillhandahålls av målsystemet. Det måste vara en primitiv (skalär) typ. Vilken data_type
som används beror på frågeutrymmet. Om en fråga körs med EntityCommandär datatypen en typ som definieras i den konceptuella modellen. Mer information finns i CSDL-specifikation. Om en fråga körs med ObjectQuery<T>är datatypen en CLR-typ (Common Language Runtime).
Returvärde
Returnerar samma värde som data_type
.
Kommentarer
Cast-uttrycket har liknande semantik som Transact-SQL CONVERT-uttrycket. Cast-uttrycket används för att konvertera ett värde av en typ till ett värde av en annan typ.
CAST( e as T )
Om e är av någon typ S och S är konvertibelt till T är uttrycket ovan ett giltigt cast-uttryck. T måste vara en primitiv (skalär) typ.
Värden för precisions- och skalningsfasetter kan eventuellt anges vid gjutning till Edm.Decimal
. Om det inte uttryckligen anges är standardvärdena för precision och skalning 18 respektive 0. Mer specifikt stöds följande överlagringar för Decimal
:
CAST( d as Edm.Decimal );
CAST( d as Edm.Decimal(precision) );
CAST( d as Edm.Decimal(precision, scale) );
Användningen av ett cast-uttryck anses vara en explicit konvertering. Explicita konverteringar kan trunkera data eller förlora precision.
Kommentar
CAST stöds endast för primitiva typer och uppräkningsmedlemstyper.
Exempel
Följande entitets-SQL-fråga använder CAST-operatorn för att omvandla ett uttryck av en datatyp till en annan. Frågan baseras på AdventureWorks försäljningsmodell. Följ dessa steg för att kompilera och köra den här frågan:
Följ proceduren i Så här kör du en fråga som returnerar PrimitiveType-resultat.
Skicka följande fråga som ett argument till
ExecutePrimitiveTypeQuery
metoden:
SELECT VALUE cast(p.ListPrice as Edm.Int32)
FROM AdventureWorksEntities.Products as p order by p.ListPrice