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


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

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

Синтаксис

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

Аргументы

identifier
Значение, которое является простым или кавычки идентификатором. Дополнительные сведения см. в разделе "Идентификаторы"

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 использует конструктор именованных типов для создания экземпляра концептуального типа модели. Запрос основан на модели продаж AdventureWorks. Чтобы скомпилировать и запустить этот запрос, выполните следующие действия.

  1. Выполните процедуру, описанную в разделе "Практическое руководство. Выполнение запроса, возвращающего результаты структурного типа".

  2. Передайте следующий запрос в качестве аргумента в ExecuteStructuralTypeQuery метод:

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

См. также