ROW (Entity SQL)
Erstellt anonyme, strukturell typisierte Datensätze aus einem oder mehreren Werten.
Syntax
ROW ( expression [ AS alias ] [,...] )
Argumente
expression
Ein gültiger Abfrageausdruck, der einen Wert zum Erstellen eines Zeilentyps zurückgibt.
alias
Gibt einen Alias für den in einem Zeilentyp angegebenen Wert an. Wenn kein Alias bereitgestellt wird, versucht Entity SQL, einen Alias basierend auf den Entitäts-SQL-Aliasgenerierungsregeln zu generieren.
Rückgabewert
Ein Zeilentyp.
Bemerkungen
Zeilenkonstruktoren werden in Entity SQL zur Erstellung anonymer, strukturell typisierter Datensätze aus einem oder mehreren Werten verwendet. Beim Ergebnistyp eines Zeilenkonstruktors handelt es sich um einen Zeilentyp, dessen Feldtypen den Typen der zur Erstellung der Zeile verwendeten Werten entsprechen. Im folgenden Ausdruck wird beispielsweise ein Wert vom Typ Record(a int, b string, c int)
erstellt.
ROW(1 AS a, "abc" AS b, a+34 AS c)
Wenn für einen Ausdruck in einem Zeilenkonstruktor kein Alias angegeben ist, wird vom Entity Framework ein Alias generiert. Weitere Informationen finden Sie im Abschnitt "Regeln für das Aliasing" im Thema Bezeichner .
Die folgenden Regeln gelten für Ausdrucksaliasing in einem Zeilenkonstruktor:
Ausdrücke in einem Zeilenkonstruktor können nicht auf andere Aliase im gleichen Konstruktor verweisen.
Zwei Ausdrücke im gleichen Zeilenkonstruktor können nicht über den gleichen Alias verfügen.
Weitere Informationen zu Abfragekonstruktoren finden Sie unter Erstellen von Typen.
Beispiel
In der folgenden Entity SQL-Abfrage wird der ROW-Operator zur Erstellung anonymer, strukturell typisierter Datensätze verwendet. Diese Abfrage beruht auf dem "AdventureWorks Sales"-Modell. Führen Sie folgende Schritte aus, um diese Abfrage zu kompilieren und auszuführen:
Verwenden Sie das Verfahren unter How to: Execute a Query that Returns StructuralType Results.
Übergeben Sie die folgende Abfrage als Argument an die
ExecuteStructuralTypeQuery
-Methode:
SELECT VALUE ROW (product.ProductID AS ProductID,
product.Name AS ProductName) FROM AdventureWorksEntities.Products
AS product