1 つまたは複数の値から構造的に型付けされた匿名レコードを構築します。
ROW ( expression [ AS alias ] [,...] )
引数
- expression
行型で構築する値を返す任意の有効なクエリ式。
- alias
行型で指定された値の別名を指定します。別名を指定しないと、Entity SQL は Entity SQL 別名生成規則に基づいて別名の生成を試みます。
戻り値
行型。
解説
1 つまたは複数の値から構造的に型付けされた匿名レコードを構築するには、Entity SQL の行コンストラクタを使用します。行コンストラクタの結果の型は、行の構築に使用された値の型に対応するフィールド型を持つ行型です。たとえば、次の式は Record(a int, b string, c int)
型の値を構築します。
ROW(1 AS a, "abc" AS b, a+34 AS c)
行コンストラクタで式の別名を指定しないと、Entity Framework は別名の生成を試みます。詳細については、「識別子」トピックの「別名規則」セクションを参照してください。
次の規則は、行コンストラクタで別名を定義する式に適用されます。
行コンストラクタの式で同じコンストラクタの他の別名を参照することはできません。
同じ行コンストラクタ内の 2 つの式に同じ別名を指定することはできません。
クエリ コンストラクタの詳細については、「型コンストラクタ演算子 (Entity SQL)」を参照してください。
例
次の Entity SQL クエリは ROW 演算子を使用して、構造的に型付けされた匿名レコードを構築します。このクエリは、AdventureWorks Sales Model に基づいています。このクエリをコンパイルして実行するには、次の手順を実行します。
「StructuralType 結果を返すクエリの実行方法 (EntityClient)」の手順に従います。
次のクエリを引数として
ExecuteStructuralTypeQuery
メソッドに渡します。
SELECT VALUE row (product.ProductID as ProductID,
product.Name as ProductName) FROM AdventureWorksEntities.Product
AS product
出力を次に示します。
ProductID: 1
ProductName: Adjustable Race
ProductID: 879
ProductName: All-Purpose Bike Stand
ProductID: 712
ProductName: AWC Logo Cap
ProductID: 3
ProductName: BB Ball Bearing
ProductID: 2
ProductName: Bearing Ball
...