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
-
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.
Nota
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 >= 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
Elemento FunctionImport (CSDL)