Condividi tramite


Elemento CollectionType (CSDL)

L'elemento CollectionType in Conceptual Schema Definition Language (CSDL) specifica che il tipo restituito da una funzione o un parametro di funzione è una raccolta.Per ulteriori informazioni sulle funzioni, vedere Elemento Function (CSDL).L'elemento CollectionType può essere un figlio dell'elemento Parameter o dell'elemento ReturnType.Il tipo di raccolta può essere specificato utilizzando l'attributo Type o uno dei seguenti elementi figlio:

  • CollectionType

  • ReferenceType

  • RowType

  • TypeRef

    Nota

    Un modello non eseguirà la convalida se il tipo di una raccolta è specificato sia con l'attributo Type che con un elemento figlio.

Attributi applicabili

Nella tabella riportata di seguito vengono descritti gli attributi che è possibile applicare all'elemento CollectionType.Si noti che gli attributi DefaultValue, MaxLength, FixedLength, Precision, Scale, Unicode e Collation sono applicabili solo a raccolte di EDMSimpleTypes.Per ulteriori informazioni, vedere Facet (CSDL) e Tipi del modello concettuale (CSDL).

Nome attributo

È obbligatorio

Valore

Type

No

Tipo della raccolta.

Nullable

No

True (valore predefinito) o False a seconda che la proprietà possa disporre o meno del valore null.

NotaNota
Nella versione di CSDL indicata dallo spazio dei nomi https://schemas.microsoft.com/ado/2006/04/edm, una proprietà del tipo complesso deve avere il valore Nullable="False".

DefaultValue

No

Valore predefinito della proprietà.

MaxLength

No

Lunghezza massima del valore della proprietà.

FixedLength

No

True o False a seconda che il valore della proprietà sia archiviato o meno come una stringa a lunghezza fissa.

Precision

No

Precisione del valore della proprietà.

Scale

No

Scala del valore della proprietà.

Unicode

No

True o False a seconda che il valore della proprietà sia archiviato o meno come una stringa Unicode.

Collation

No

Stringa che specifica la sequenza di confronto da utilizzare nell'origine dati.

Nota

È possibile applicare un qualsiasi numero di attributi di annotazione (attributi XML personalizzati) all'elemento CollectionType.Tuttavia, gli attributi personalizzati non possono appartenere ad alcuno spazio dei nomi XML riservato a CSDL.I nomi completi per due attributi personalizzati qualsiasi non possono essere uguali.

Esempio

Nell'esempio seguente viene mostrata una funzione definita dal modello che utilizza un elemento CollectionType per specificare che la funzione restituisce una raccolta di tipi di entità Person (come specificato con l'attributo 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>

Nell'esempio seguente viene mostrata una funzione definita dal modello che utilizza un elemento CollectionType per specificare che la funzione restituisce una raccolta di righe (come specificato nell'elemento 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>

Nell'esempio seguente viene mostrata una funzione definita dal modello che utilizza l'elemento CollectionType per specificare che la funzione accetta come parametro una raccolta di tipi di entità 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>

Vedere anche

Concetti

Panoramica su Entity Framework

Specifiche CSDL

Elemento FunctionImport (CSDL)

Altre risorse

Specifiche CSDL, SSDL e MSL

Strumenti di ADO.NET Entity Data Model