CAST (Entity SQL)
あるデータ型の式を別のデータ型に変換します。
構文
CAST ( expression AS data_type )
引数
expression
data_type
に変換できる任意の有効な式。
data_type
対象システムで提供されるデータ型。 プリミティブ (スカラー) 型でなければなりません。 使用される data_type
は、クエリのスペースによって異なります。 クエリが EntityCommandで実行される場合、データ型は概念モデルで定義された型です。 詳細については、「 CSDL Specification」を参照してください。 クエリが ObjectQuery<T>で実行される場合、データ型は共通言語ランタイム (CLR) 型です。
戻り値
data_type
と同じ値を返します。
Remarks
キャスト式のセマンティクスは、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) );
キャスト式の使用は明示的な変換と見なされます。 明示的な変換では、データが切り捨てられたり、精度が失われたりする場合があります。
Note
CAST はプリミティブ型と列挙メンバー型のみでサポートされています。
例
次の Entity SQL クエリは CAST 演算子を使用して、あるデータ型の式を別のデータ型にキャストします。 このクエリは、AdventureWorks Sales Model に基づいています。 このクエリをコンパイルして実行するには、次の手順を実行します。
「方法: PrimitiveType 結果を返すクエリを実行する」の手順に従います。
次のクエリを引数として
ExecutePrimitiveTypeQuery
メソッドに渡します。
SELECT VALUE cast(p.ListPrice as Edm.Int32)
FROM AdventureWorksEntities.Products as p order by p.ListPrice