CAST (Entity SQL)
あるデータ型の式を別のデータ型に変換します。
CAST ( expression AS data_type )
引数
- expression
data_type に変換できる任意の有効な式。
- data_type
対象システムで提供されるデータ型。 プリミティブ (スカラー) 型でなければなりません。 使用される data_type は、クエリのスペースによって異なります。 クエリが EntityCommand で実行される場合、データ型は概念モデルで定義された型です。 詳細については、「CSDL 仕様」を参照してください。 クエリが 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 に基づいています。 このクエリをコンパイルして実行するには、次の手順を実行します。
Follow the procedure in PrimitiveType 結果を返すクエリの実行方法 (EntityClient).
Pass the following query as an argument to the
ExecutePrimitiveTypeQuery
method:
SELECT VALUE cast(p.ListPrice as Edm.Int32)
FROM AdventureWorksEntities.Products as p order by p.ListPrice