Elemento Property (CSDL)
L'elemento Property in Conceptual Schema Definition Language (CSDL) può essere un figlio dell'elemento EntityType, l'elemento ComplexType o l'elemento RowType.
Applicazione degli elementi EntityType e ComplexType
Gli elementi Property (come figli dell'elemento EntityType o ComplexType) definiscono la forma e le caratteristiche dei dati che saranno contenuti in un'istanza di un tipo di entità o in un'istanza di un tipo complesso. Le proprietà in un modello concettuale sono analoghe alle proprietà definite su una classe. Nello stesso modo in cui le proprietà su una classe definiscono la forma della classe e forniscono informazioni su oggetti, le proprietà in un modello concettuale definiscono la forma di un tipo di entità e forniscono informazioni su istanze del tipo di entità.
L'elemento Property può includere i seguenti elementi figlio (nell'ordine elencato):
Elemento Documentation (zero elementi o un elemento consentito)
Elementi Annotation (zero o più elementi consentiti)
All'elemento Property possono essere applicati i seguenti facet: Nullable, DefaultValue, MaxLength, FixedLength, Precision, Scale, Unicode, Collation, ConcurrencyMode. I facet sono attributi XML che forniscono informazioni sul modo in cui i valori di proprietà vengono archiviati nell'archivio dati. Per ulteriori informazioni, vedere Facet (CSDL).
Nota: |
---|
I facet possono essere applicati solo a proprietà di tipo EDMSimpleType.Per ulteriori informazioni, vedere Tipi del modello concettuale. |
Attributi applicabili
Nella tabella riportata di seguito vengono descritti gli attributi che è possibile applicare all'elemento Property.
Nome attributo | È obbligatorio | Valore |
---|---|---|
Name |
Sì |
Nome della proprietà. |
Type |
Sì |
Tipo del valore della proprietà. Il tipo del valore della proprietà deve essere EDMSimpleType oppure un tipo complesso (indicato da un nome completo) che si trova entro l'ambito del modello. Per ulteriori informazioni, vedere Tipi del modello concettuale. |
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. |
ConcurrencyMode |
No |
None (valore predefinito) o Fixed. Se il valore viene impostato su Fixed, il valore della proprietà sarà utilizzato nelle verifiche della concorrenza ottimistica. |
Nota: |
---|
È possibile applicare un qualsiasi numero di attributi di annotazione (attributi XML personalizzati) all'elemento Property.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 riportato di seguito viene mostrato un elemento EntityType con tre elementi Property:
<EntityType Name="Book">
<Key>
<PropertyRef Name="ISBN" />
</Key>
<Property Type="String" Name="ISBN" Nullable="false" />
<Property Type="String" Name="Title" Nullable="false" />
<Property Type="Decimal" Name="Revision" Nullable="false" Precision="29" Scale="29" />
<NavigationProperty Name="Publisher" Relationship="BooksModel.PublishedBy"
FromRole="Book" ToRole="Publisher" />
<NavigationProperty Name="Authors" Relationship="BooksModel.WrittenBy"
FromRole="Book" ToRole="Author" />
</EntityType>
Nell'esempio riportato di seguito viene mostrato un elemento ComplexType con cinque elementi Property:
<ComplexType Name="Address" >
<Property Type="String" Name="StreetAddress" Nullable="false" />
<Property Type="String" Name="City" Nullable="false" />
<Property Type="String" Name="StateOrProvince" Nullable="false" />
<Property Type="String" Name="Country" Nullable="false" />
<Property Type="String" Name="PostalCode" Nullable="false" />
</ComplexType>
Applicazione dell'elemento RowType
Gli elementi Property (come figli di un elemento RowType ) definiscono la forma e le caratteristiche di dati che possono essere passati a una funzione definita dal modello o essere restituiti da questa funzione. Per ulteriori informazioni, vedere Elemento Function (CSDL).
L'elemento Property può includere esattamente uno dei seguenti elementi figlio:
L'elemento Property può disporre di qualsiasi numero di elementi di annotazione figlio.
Nota: |
---|
L'utilizzo di elementi Annotation è consentito solo in modelli concettuali per applicazioni che sono destinate a .NET Framework versione 4 o successive.Lo spazio dei nomi XML per tali modelli è https://schemas.microsoft.com/ado/2008/09/edm. |
Attributi applicabili
Nella tabella riportata di seguito vengono descritti gli attributi che è possibile applicare all'elemento Property.
Nome attributo | È obbligatorio | Valore |
---|---|---|
Name |
Sì |
Nome della proprietà. |
Type |
Sì |
Tipo del valore della proprietà. |
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 Property.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 vengono mostrati elementi Property utilizzati per definire la forma del tipo restituito di una funzione definita dal modello.
<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>
Vedere anche
Concetti
Panoramica su Entity Framework
Specifiche CSDL
Elemento Schema (CSDL)
Elemento FunctionImport (CSDL)
Altre risorse
Specifiche CSDL, SSDL e MSL
ADO.NET Entity Data Model Tools
property (Entity Data Model)
facet (Entity Data Model)