Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
Un tipo complesso è un modello per la definizione di proprietà avanzate e strutturate sui tipi di entità o su altri tipi complessi. Ogni modello contiene quanto segue:
Un nome univoco. (obbligatorio).
Annotazioni
Il nome di un tipo complesso non può essere uguale al nome di un tipo di entità all'interno dello stesso spazio dei nomi.
Dati sotto forma di una o più proprietà. (Facoltativo.
Annotazioni
Una proprietà di un tipo complesso può essere un altro tipo complesso.
Un tipo complesso è simile a un tipo di entità in cui un tipo complesso può trasportare un payload di dati sotto forma di proprietà di tipo primitivo o altri tipi complessi. Esistono tuttavia alcune differenze principali tra tipi complessi e tipi di entità:
I tipi complessi non dispongono di identità e pertanto non possono esistere in modo indipendente. I tipi complessi possono esistere solo come proprietà nei tipi di entità o in altri tipi complessi.
I tipi complessi non possono partecipare alle associazioni. Nessuna delle due estremità di un'associazione può essere un tipo complesso e pertanto le proprietà di navigazione non possono essere definite su tipi complessi.
Esempio
Il ADO.NET Entity Framework usa un linguaggio specifico del dominio (DSL) denominato linguaggio CSDL (Conceptual Schema Definition Language) per definire modelli concettuali. Il file CSDL seguente definisce un tipo complesso, Address, con le proprietà del tipo primitivo StreetAddress, City, StateOrProvince, Country e PostalCode.
<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>
Per definire il tipo Address complesso (sopra) come proprietà in un tipo di entità, è necessario dichiarare il tipo di proprietà nella definizione del tipo di entità. Il file CSDL seguente dichiara la Address proprietà come tipo complesso su un tipo di entità (Publisher):
<EntityType Name="Publisher">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Type="Int32" Name="Id" Nullable="false" />
<Property Type="String" Name="Name" Nullable="false" />
<Property Type="BooksModel.Address" Name="Address" Nullable="false" />
<NavigationProperty Name="Books" Relationship="BooksModel.PublishedBy"
FromRole="Publisher" ToRole="Book" />
</EntityType>
Vedere anche
- Concetti chiave del modello di dati di entità
- Modello di Dati dell'Entità