Partager via


Élément CollectionType (CSDL)

L'élément CollectionType dans le langage CSDL (Conceptual Schema Definition Language) spécifie qu'un paramètre de fonction ou un type de retour de fonction est une collection. Pour plus d'informations sur les fonctions, consultez Élément Function (CSDL). L'élément CollectionType peut être un enfant de l'élément Parameter ou de l'élément ReturnType. Le type de collection peut être spécifié à l'aide de l'attribut ElementType ou de l'un des éléments enfants suivants :

  • CollectionType

  • ReferenceType ;

  • RowType ;

  • TypeRef.

    Ee476606.note(fr-fr,VS.100).gifRemarque :
    Un modèle ne sera pas validé si le type d'une collection est spécifié avec à la fois l'attribut ElementType et un élément enfant.

Attributs applicables

Le tableau ci-dessous décrit les attributs qui peuvent s'appliquer à l'élément CollectionType. Notez que les attributs DefaultValue, MaxLength, FixedLength, Precision, Scale, Unicode et Collation sont uniquement applicables aux collections d'EDMSimpleTypes. Pour plus d'informations, consultez Facettes (CSDL) et Types de modèle conceptuel.

Nom d'attribut Requis Valeur

ElementType

Non

Type de la collection.

Nullable

Non

True (valeur par défaut) ou False selon que la propriété peut avoir ou non une valeur NULL.

Ee476606.note(fr-fr,VS.100).gifRemarque :
Dans la version du langage CSDL indiquée par l'espace de noms https://schemas.microsoft.com/ado/2006/04/edm, une propriété de type complexe doit avoir Nullable="False".

DefaultValue

Non

Valeur par défaut de la propriété.

MaxLength

Non

Longueur maximale de la valeur de propriété.

FixedLength

Non

True ou False selon que la valeur de propriété sera stockée ou non comme une chaîne de longueur fixe.

Precision

Non

Précision de la valeur de propriété.

Scale

Non

Échelle de la valeur de propriété.

Unicode

Non

True ou False selon que la valeur de propriété sera stockée ou non comme une chaîne Unicode.

Collation

Non

Chaîne qui spécifie l'ordre de classement à utiliser dans la source de données.

Ee476606.note(fr-fr,VS.100).gifRemarque :
Un nombre quelconque d'attributs d'annotation (attributs XML personnalisés) peut être appliqué à l'élément CollectionType.Toutefois, les attributs personnalisés ne peuvent pas appartenir à un espace de noms XML réservé pour le langage CSDL.Les noms qualifiés complets de deux attributs personnalisés quelconques ne peuvent pas être identiques.

Exemple

L'exemple ci-dessous illustre une fonction définie par modèle qui utilise un élément CollectionType pour spécifier que la fonction retourne une collection de types d'entités Person (tels que spécifiés avec l'attribut ElementType).

<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>

L'exemple ci-dessous illustre une fonction définie par modèle qui utilise un élément CollectionType pour spécifier que la fonction retourne une collection de lignes (telles que spécifiées dans l'élément RowType).

<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>

L'exemple ci-dessous illustre une fonction définie par modèle qui utilise l'élément CollectionType pour spécifier que la fonction accepte comme paramètre une collection de types d'entités Department.

<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>

Voir aussi

Concepts

Vue d'ensemble d'Entity Framework
Spécification CSDL
Élément FunctionImport (CSDL)

Autres ressources

Spécifications CSDL, SSDL et MSL
ADO.NET Entity Data Model Tools