Typdefinitionen (Entity SQL)

Eine Typdefinition wird in der Deklarationsanweisung einer Entity SQL -Inlinefunktion verwendet.

Hinweise

Die Deklarationsanweisung für eine Inlinefunktion besteht aus dem FUNCTION (Entity SQL)-Schlüsselwort, dem Bezeichner, der den Funktionsnamen (z. B. "MyAvg") darstellt und der Parameterdefinitionsliste in Klammern (z. B. "Gebührenauflistung (Decimal)").

Die Parameterdefinitionsliste besteht aus 0 (null) oder mehreren Parameterdefinitionen. Jede Parameterdefinition besteht aus einem von einer Typdefinition (z. B. "Auflistung (Decimal)") gefolgten Bezeichner (der Name des Parameters der Funktion, z. B. "Gebühren").

Dies sind die zulässigen Typdefinitionen:

  • Der Typ des Bezeichners (z. B. "Int32" oder "AdventureWorks.Order").

  • Das COLLECTION-Schlüsselwort, das von einer anderen Typdefinition in Klammern gefolgt wird (z. B. "Collection(AdventureWorks.Order)").

  • Das von einer Liste von Eigenschaftendefinitionen in Klammern (z. B. "Row(x AdventureWorks.Order))" gefolgte ROW-Schlüsselwort. Eigenschaftendefinitionen besitzen Formate wie z. B. identifier type_definition oder identifier type_definition.

  • Das vom Typ des Bezeichners in Klammern (z. B. "Ref(AdventureWorks.Order)") gefolgte REF-Schlüsselwort. Der REF-Typdefinitionsoperator erfordert einen Entitätstyp als Argument. Sie können keinen primitiven Typ als Argument angeben.

Sie können Typdefinitionen auch schachteln (z. B., "Collection(Row(x Ref(AdventureWorks.Order)))").

Die Typdefinitionsoptionen lauten folgendermaßen:

  • IdentifierName supported_type oder

  • IdentifierName COLLECTION(type_definition) oder

  • IdentifierName ROW(property_definition) oder

  • IdentifierName REF(supported_entity_type)

Die Eigenschaftendefinitionsoption ist IdentifierName type_definition.

Unterstützte Typen sind alle Typen im aktuellen Namespace. Diese schließen sowohl primitive Typen als auch Entitätstypen ein.

Unterstützte Entitätstypen verweisen im aktuellen Namespace nur auf Entitätstypen. Sie schließen keine primitiven Typen ein.

Beispiele

Im folgenden Beispiel wird eine einfache Typdefinition dargestellt.

USING Microsoft.Samples.Entity
Function MyRound(p1 EDM.Decimal) AS (
   Round(p1)
)
MyRound(CAST(1.7 as EDM.Decimal))

Dies ist ein Beispiel für eine COLLECTION-Typdefinition.

USING Microsoft.Samples.Entity
Function MyRound(p1 Collection(EDM.Decimal)) AS (
   Select Round(p1) from p1
)
MyRound({CAST(1.7 as EDM.Decimal), CAST(2.7 as EDM.Decimal)})

Dies ist ein Beispiel für eine ROW-Typdefinition.

USING Microsoft.Samples.Entity
Function MyRound(p1 Row(x EDM.Decimal)) AS (
   Round(p1.x)
)
select MyRound(row(a as x)) from {CAST(1.7 as EDM.Decimal), CAST(2.7 as EDM.Decimal)} as a

Dies ist ein Beispiel für eine REF-Typdefinition.

USING Microsoft.Samples.Entity
Function UnReference(p1 Ref(AdventureWorks.Order)) AS (
   Deref(p1)
)
select Ref(x) from AdventureWorksEntities.SalesOrderHeaders as x

Siehe auch

Konzepte

Übersicht über Entity SQL
Entity SQL-Referenz