命名类型构造函数 (Entity SQL)

用于创建 实体数据模型 (EDM) 名义类型(如实体或复杂类型)的实例。

[{identifier. }] identifier( [expression [{, expression }]] )

参数

  • identifier
    作为简单标识符或带引号的标识符的值。有关更多信息,请参见标识符 (Entity SQL)
  • expression
    类型的属性,假设这些属性的顺序与它们在类型声明中的顺序相同。

返回值

命名复杂类型和实体类型的实例。

备注

下面的示例演示如何构造名义类型和复杂类型:

下面的表达式创建 Person 类型的实例:

Person("abc", 12)

下面的表达式创建复杂类型的实例:

MyModel.ZipCode(‘98118’, ‘4567’)

下面的表达式创建嵌套复杂类型的实例:

MyModel.AddressInfo('My street address', 'Seattle', 'WA', MyModel.ZipCode('98118', '4567'))

下面的表达式创建具有嵌套复杂类型的实体的实例:

MyModel.Person("Bill", MyModel.AddressInfo('My street address', 'Seattle', 'WA', MyModel.ZipCode('98118', '4567')))

下面的示例演示如何将复杂类型的属性初始化为 null:MyModel.ZipCode(‘98118’, null)

示例

下面的 Entity SQL 查询使用命名类型构造函数创建 EDM 类型的实例。此查询基于 AdventureWorks 销售模型。若要编译并运行此查询,请执行下列步骤:

  1. 执行如何:执行返回 StructuralType 结果的查询 (EntityClient) 中的过程。

  2. 将以下查询作为参数传递给 ExecuteStructuralTypeQuery 方法:

SELECT VALUE AdventureWorksModel.SalesOrderDetail
    (o.SalesOrderDetailID, o.CarrierTrackingNumber,
    o.OrderQty, o.ProductID, o.SpecialOfferID, o.UnitPrice,
    o.UnitPriceDiscount, o.rowguid, o.ModifiedDate)
    FROM AdventureWorksEntities.SalesOrderDetail AS o

此示例产生以下输出:

SalesOrderDetailID: 1
CarrierTrackingNumber: 4911-403C-98
OrderQty: 1
ProductID: 776
SalesOrderDetailID: 2
CarrierTrackingNumber: 4911-403C-98
OrderQty: 3
ProductID: 777
SalesOrderDetailID: 3
CarrierTrackingNumber: 4911-403C-98
OrderQty: 1
ProductID: 778
SalesOrderDetailID: 4
CarrierTrackingNumber: 4911-403C-98
OrderQty: 1
ProductID: 771
SalesOrderDetailID: 5
CarrierTrackingNumber: 4911-403C-98
OrderQty: 1
ProductID: 772
...

另请参见

概念

类型构造函数运算符 (Entity SQL)
Entity SQL 参考