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 ElementType-Attribut oder einem der folgenden untergeordneten Elemente angegeben werden:

  • CollectionType

  • ReferenceType

  • RowType

  • TypeRef

    Ee476606.note(de-de,VS.100).gifHinweis:
    Ein Modell überprüft nicht, ob für den Auflistungstyp das ElementType-Attribut bzw. ein untergeordnetes Element angegeben ist.

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.

Attributname Ist erforderlich Wert

ElementType

Nein

Der Typ der Auflistung.

Nullable

Nein

True (Standardwert) oder False, je nach dem, ob die Eigenschaft über einen Null-Wert verfügen kann.

Ee476606.note(de-de,VS.100).gifHinweis:
In der Version von CSDL, die vom https://schemas.microsoft.com/ado/2006/04/edm-Namespace angegeben wurde, 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.

Ee476606.note(de-de,VS.100).gifHinweis:
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)

Weitere Ressourcen

CSDL-, SSDL- und MSL-Spezifikationen
ADO.NET Entity Data Model Tools