Freigeben über


CollectionType-Element (CSDL)

Das CollectionType-Element in konzeptioneller Schemadefinitionssprache (CSDL) gibt an, dass ein Funktionsparameter oder ein Funktionsrückgabetyp eine Auflistung ist.Weitere Informationen finden Sie unter Function-Element (CSDL).Das CollectionType-Element kann ein untergeordnetes Element des Parameter-Elements oder des ReturnType-Elements sein.Der Typ der Auflistung kann entweder mit dem Type-Attribut oder einem der folgenden untergeordneten Elemente angegeben werden:

  • CollectionType

  • ReferenceType

  • RowType

  • TypeRef

    Hinweis

    Ein Modell überprüft nicht, ob für den Auflistungstyp das Type-Attribut und ein untergeordnetes Element angegeben wurden.

Anwendbare Attribute

In der folgenden Tabelle werden die Attribute beschrieben, die für das CollectionType-Element übernommen werden können.Die DefaultValue-, MaxLength-, FixedLength-, Precision-, Scale-, Unicode- und Collation-Attribute sind nur für Auflistungen der EDMSimpleTypes zulässig.Weitere Informationen finden Sie unter Facets (CSDL) und Konzeptionelle Modelltypen (CSDL).

Attributname

Ist erforderlich

Wert

Type

Nein

Der Typ der Auflistung.

Nullable

Nein

True (Standardwert) oder False, je nach dem, ob die Eigenschaft den Wert NULL haben kann.

HinweisHinweis
In der Version von CSDL, die im https://schemas.microsoft.com/ado/2006/04/edm-Namespace angegeben wird, muss eine komplexe Typeigenschaft Nullable="False" aufweisen.

DefaultValue

Nein

Der Standardwert der Eigenschaft.

MaxLength

Nein

Die maximale Länge des Eigenschaftswerts.

FixedLength

Nein

True oder False, abhängig davon, ob der Eigenschaftswert als Zeichenfolge mit fester Länge gespeichert wird.

Precision

Nein

Die Genauigkeit des Eigenschaftswerts.

Scale

Nein

Die Skalierung des Eigenschaftswerts.

Unicode

Nein

True oder False, abhängig davon, ob der Eigenschaftswert als Unicode-Zeichenfolge gespeichert wird.

Collation

Nein

Eine Zeichenfolge, die die Sortierreihenfolge angibt, die in der Datenquelle verwendet werden soll.

Hinweis

Eine beliebige Anzahl von Anmerkungsattributen (benutzerdefinierte XML-Attribute) kann für das CollectionType-Element übernommen werden.Benutzerdefinierte Attribute dürfen jedoch zu keinem XML-Namespace gehören, der für CSDL reserviert ist.Die vollqualifizierten Namen für zwei benutzerdefinierte Attribute dürfen nicht übereinstimmen.

Beispiel

Das folgende Beispiel zeigt eine modelldefinierte Funktion, die mithilfe eines CollectionType-Elements angibt, dass die Funktion eine Auflistung von Person-Entitätstypen (wie mit dem ElementType-Attribut angegeben) zurückgibt.

<Function Name="LastNamesAfter">
       <Parameter Name="someString" Type="Edm.String"/>
       <ReturnType>
            <CollectionType  ElementType="SchoolModel.Person"/>
       </ReturnType>
       <DefiningExpression>
            SELECT VALUE p 
            FROM SchoolEntities.People AS p 
            WHERE p.LastName >= someString
       </DefiningExpression>
</Function>

Das folgende Beispiel zeigt eine modelldefinierte Funktion, die mithilfe eines CollectionType-Elements angibt, dass die Funktion eine Auflistung von Zeilen (wie im RowType-Element angegeben) zurückgeben soll.

<Function Name="LastNamesAfter">
  <Parameter Name="someString" Type="Edm.String" />
  <ReturnType>
   <CollectionType>
     <RowType>
       <Property Name="FirstName" Type="Edm.String" Nullable="false" />
       <Property Name="LastName" Type="Edm.String" Nullable="false" />
     </RowType>
   </CollectionType>
  </ReturnType>
  <DefiningExpression>
            SELECT VALUE ROW(p.FirstName, p.LastName)
            FROM SchoolEntities.People AS p
            WHERE p.LastName &gt;= somestring
  </DefiningExpression>
</Function>

Das folgende Beispiel zeigt eine modelldefinierte Funktion, die mithilfe des CollectionType-Elements angibt, dass die Funktion eine Auflistung von Department-Entitätstypen als Parameter akzeptiert.

<Function Name="GetAvgBudget">
     <Parameter Name="Departments">
         <CollectionType>
            <TypeRef Type="SchoolModel.Department"/>
         </CollectionType>
          </Parameter>
      <ReturnType Type="Collection(Edm.Decimal)"/>
      <DefiningExpression>
            SELECT VALUE AVG(d.Budget) FROM Departments AS d
      </DefiningExpression>
</Function>

Siehe auch

Konzepte

Übersicht über das Entity Framework

CSDL-Spezifikation

FunctionImport-Element (CSDL)

Andere Ressourcen

CSDL-, SSDL- und MSL-Spezifikationen

ADO.NET Entity Data Model Tools