Konstruktor benannter Typen (Entity SQL)
Wird verwendet, um Instanzen von nominalen (EDM)-Typen eines konzeptionellen Modells, wie Entitätstypen oder komplexe Typen zu erstellen.
[{identifier. }] identifier( [expression [{, expression }]] )
Argumente
- identifier
Wert, der ein einfacher Bezeichner oder ein Bezeichner in Anführungszeichen ist. Weitere Informationen finden Sie unter Bezeichner (Entity SQL).
- expression
Attribute des Typs, deren Reihenfolge mit der in der Deklaration des Typs übereinstimmen sollte.
Rückgabewert
Instanzen benannter komplexer Typen und Entitätstypen.
Hinweise
In den folgenden Beispielen wird gezeigt, wie nominale und komplexe Typen erstellt werden:
Mit dem folgenden Ausdruck wird eine Instanz des Person-Typs erstellt:
Person("abc", 12)
Mit dem folgenden Ausdruck wird eine Instanz eines komplexen Typs erstellt:
MyModel.ZipCode(‘98118’, ‘4567’)
Mit dem folgenden Ausdruck wird eine Instanz eines geschachtelten komplexen Typs erstellt:
MyModel.AddressInfo('My street address', 'Seattle', 'WA', MyModel.ZipCode('98118', '4567'))
Mit dem folgenden Ausdruck wird eine Instanz einer Entität mit einem geschachtelten komplexen Typ erstellt:
MyModel.Person("Bill", MyModel.AddressInfo('My street address', 'Seattle', 'WA', MyModel.ZipCode('98118', '4567')))
Im folgenden Beispiel wird gezeigt, wie eine Eigenschaft eines komplexen Typs mit NULL initialisiert wird: MyModel.ZipCode(‘98118’, null)
Beispiel
In der folgenden Entity SQL-Abfrage wird der Konstruktor benannter Typen verwendet, um eine Instanz eines konzeptionellen Modelltyps zu erstellen. Diese Abfrage beruht auf dem AdventureWorks Sales-Modell. Führen Sie folgende Schritte durch, um diese Abfrage zu kompilieren und auszuführen:
Verwenden Sie das Verfahren unter Gewusst wie: Ausführen einer Abfrage, die StructuralType-Ergebnisse zurückgibt (EntityClient).
Übergeben Sie die folgende Abfrage als Argument an die
ExecuteStructuralTypeQuery
-Methode:
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