从一个或多个值构造结构上类型化的匿名记录。
ROW ( expression [ AS alias ] [,...] )
参数
- expression
任何有效的查询表达式,该表达式返回要在行类型中构造的值。
- alias
为在行类型中指定的值指定别名。如果未提供别名,则 Entity SQL 会尝试基于 Entity SQL 别名生成规则来生成别名。
返回值
一个行类型。
备注
使用 Entity SQL 中的行构造函数可以从一个或多个值构造结构上类型化的匿名记录。行构造函数的结果类型为行类型,其字段类型对应于用于构造该行的值的类型。例如,下面的表达式构造一个类型为 Record(a int, b string, c int)
的值。
ROW(1 AS a, "abc" AS b, a+34 AS c)
如果没有为行构造函数中的表达式提供别名,则实体框架会尝试生成一个别名。有关更多信息,请参见标识符主题中的“别名规则”一节。
以下规则适用于在行构造函数中指定表达式别名:
行构造函数中的表达式不能引用同一构造函数中的其他别名。
同一行构造函数中的两个表达式不能具有相同别名。
有关查询构造函数的更多信息,请参见类型构造函数运算符 (Entity SQL)。
示例
下面的 Entity SQL 查询使用 ROW 运算符构造结构上类型化的匿名记录。此查询基于 AdventureWorks 销售模型。若要编译并运行此查询,请执行下列步骤:
将以下查询作为参数传递给
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
...