Поделиться через


Конструктор именованного типа (язык Entity SQL)

Используется для создания экземпляров номинальных типов Entity Data Model, например сложных типов или типов сущностей.

[{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 Sales. Для компиляции и запуска этого запроса выполните следующие шаги.

  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