Condividi tramite


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

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 (CSDL).

Attributi applicabili

Nella tabella riportata di seguito vengono descritti gli attributi che è possibile applicare all'elemento Property.

Nome attributo

È obbligatorio

Valore

Name

Nome della proprietà.

Type

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 (CSDL).

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.

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

Nome della proprietà.

Type

Tipo del valore della proprietà.

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 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 &gt;= somestring
  </DefiningExpression>
</Function>

Vedere anche

Concetti

Panoramica su Entity Framework

Specifiche CSDL

Elemento Schema (CSDL)

proprietà

facet

Elemento FunctionImport (CSDL)

Altre risorse

Specifiche CSDL, SSDL e MSL

Strumenti di ADO.NET Entity Data Model