Freigeben über


ROW (Entity SQL)

Erstellt anonyme, strukturell typierte Datensätze aus einem oder mehreren Werten.

Syntax

ROW ( expression [ AS alias ] [,...] )

Argumente

expression Ein beliebiger gültiger Abfrageausdruck, der einen Wert zurückgibt, der in einem Zeilentyp erstellt werden soll.

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

Sie verwenden Zeilenkonstruktoren in entity SQL, um anonyme, strukturell typierte Datensätze aus einem oder mehreren Werten zu erstellen. Der Ergebnistyp eines Zeilenkonstruktors ist ein Zeilentyp, dessen Feldtypen den Typen der Werte entsprechen, die zum Erstellen der Zeile verwendet wurden. Der folgende Ausdruck erstellt z. B. einen Wert vom Typ Record(a int, b string, c int).

ROW(1 AS a, "abc" AS b, a+34 AS c)

Wenn Sie keinen Alias für einen Ausdruck in einem Zeilenkonstruktor angeben, versucht Entity Framework, einen zu generieren. Weitere Informationen finden Sie im Abschnitt "Aliasing Rules" des Themas "Bezeichner" .

Die folgenden Regeln gelten für ausdrucksaliasing in einem Zeilenkonstruktor:

  • Ausdrücke in einem Zeilenkonstruktor können nicht auf andere Aliase im selben Konstruktor verweisen.

  • Zwei Ausdrücke im selben Zeilenkonstruktor können nicht denselben Alias haben.

Weitere Informationen zu Abfragekonstruktoren finden Sie unter "Erstellen von Typen".

Beispiel

Die folgende Entity SQL-Abfrage verwendet den ROW-Operator, um anonyme, strukturell typierte Datensätze zu erstellen. Die Abfrage basiert auf dem AdventureWorks Sales Model. Führen Sie die folgenden Schritte aus, um diese Abfrage zu kompilieren und auszuführen:

  1. Gehen Sie wie folgt vor : Ausführen einer Abfrage, die StrukturelleType-Ergebnisse zurückgibt.

  2. Ü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

Siehe auch