CAST (Entity SQL)
あるデータ型の式を別のデータ型に変換します。
CAST ( expression AS data_type )
引数
- expression
data_type に変換できる任意の有効な式。
- data_type
対象システムで提供されるデータ型。プリミティブ (スカラ) 型でなければなりません。使用される data_type は、クエリのスペースによって異なります。クエリが EntityCommand で実行される場合、データ型は EDM 型です。クエリが ObjectQuery で実行される場合、データ型は共通言語ランタイム (CLR) 型です。
戻り値
data_type と同じ値が返されます。
解説
キャスト式のセマンティックスは Transact-SQL CONVERT 式と似ています。キャスト式は、ある型の値を別の型の値に変換する場合に使用します。
CAST( e as T )
e が S 型で、S を T に変換できる場合、上記の式は有効なキャスト式です。T はプリミティブ (スカラ) 型でなければなりません。
Edm.Decimal にキャストする場合は、オプションで精度と小数点以下桁数のファセットの値を指定できます。明示的に指定しない場合、精度と小数点以下桁数の既定値はそれぞれ 18 と 0 です。具体的には、Decimal で次のオーバーロードがサポートされています。
CAST( d as Edm.Decimal );
CAST( d as Edm.Decimal(precision) );
CAST( d as Edm.Decimal(precision, scale) );
キャスト式の使用は明示的な変換と見なされます。明示的な変換では、データが切り捨てられたり、精度が失われたりする場合があります。
[!メモ]
CAST はプリミティブ型と列挙メンバ型のみでサポートされています。
例
次の Entity SQL クエリは CAST 演算子を使用して、あるデータ型の式を別のデータ型にキャストします。このクエリは、AdventureWorks Sales Model に基づいています。このクエリをコンパイルして実行するには、次の手順を実行します。
「PrimitiveType 結果を返すクエリの実行方法 (EntityClient)」の手順に従います。
次のクエリを引数として
ExecutePrimitiveTypeQuery
メソッドに渡します。
SELECT VALUE cast(p.ListPrice as Edm.Int32)
FROM AdventureWorksEntities.Product as p order by p.ListPrice