Condividi tramite


Scenari di mapping di Entity Data Model (Scenari dell'applicazione)

Entity Framework supporta varie modalità di mapping di modelli concettuali a dati relazionali in un modello EDM (Entity Data Model). Per ulteriori informazioni, vedere Modellazione dei dati in Entity Framework.

Entity Framework supporta attualmente gli scenari di mapping del modello EDM (Entity Data Model) riportati di seguito.

Scenario di mapping Descrizione

Mapping semplice

In questo scenario di mapping ogni entità nel modello concettuale viene mappata a una singola tabella nel modello di archiviazione. Si tratta del mapping predefinito generato dagli strumenti del modello Entity Data Model. Per ulteriori informazioni, vedere Guida rapida (Entity Framework).

Suddivisione delle entità

In questo scenario di mapping le proprietà di una singola entità nel modello concettuale vengono mappate alle colonne in due o più tabelle sottostanti. In questo scenario le tabelle devono condividere una chiave primaria comune. Per ulteriori informazioni, vedere Procedura: definire un modello con una singola entità mappata a due tabelle.

Partizionamento orizzontale nel modello di archiviazione

In questo scenario di mapping un singolo tipo di entità nel modello concettuale viene mappato a due o più tabelle con lo stesso schema. L'entità viene mappata nelle tabelle basate su una condizione definita nel modello concettuale. Ad esempio, la proprietà OnlineOrderFlag booleana dell'entità SalesOrderHeader nel modello Sales di AdventureWorks può essere utilizzata per partizionare i dati dell'entità in tabelle separate nell'origine dati, con una tabella per gli ordini in linea e una seconda tabella per gli ordini non in linea. Per ulteriori informazioni, vedere Elemento Condition (MappingFragment).

Partizionamento orizzontale nel modello concettuale

In questo scenario di mapping più tipi di entità del modello concettuale con le stesse proprietà vengono mappati a una singola tabella. Una clausola di condizione viene utilizzata per specificare l'appartenenza dei dati della tabella ai vari tipi di entità. Questo mapping è simile al mapping di ereditarietà tabella per gerarchia.

Ereditarietà tabella per gerarchia

In questo scenario di mapping tutti i tipi in una gerarchia di ereditarietà sono mappati a una singola tabella. Per definire i tipi di entità, viene utilizzata una clausola di condizione. Per ulteriori informazioni, vedere Procedura: definire un modello con ereditarietà tabella per gerarchia (Entity Framework).

Ereditarietà tabella per tipo

In questo scenario di mapping tutti i tipi sono mappati a singole tabelle. Le proprietà che appartengono esclusivamente a un tipo di base o derivato sono archiviate in una tabella che viene mappata a quel tipo. Per ulteriori informazioni, vedere Procedura: definire un modello con ereditarietà tabella per tipo (Entity Framework).

Ereditarietà tabella per tipo concreto

In questo scenario di mapping ciascun tipo non astratto viene mappato a una singola tabella. Ognuna di queste tabelle deve disporre di colonne che eseguono il mapping a tutte le proprietà del tipo derivato, incluse le proprietà ereditate dal tipo di base.

Più set di entità per tipo

In questo scenario di mapping un singolo tipo di entità viene espresso in due o più set di entità separate nel modello concettuale. Ogni set di entità viene mappato a una tabella separata nel modello di archiviazione. Per ulteriori informazioni, vedere Procedura: definire un modello con più set di entità per tipo (Entity Framework).

Tipi complessi

Un tipo complesso è una proprietà non scalare di un tipo di entità che non dispone di una proprietà chiave e che può contenere altri tipi complessi nidificati. I tipi complessi sono mappati alle tabelle del modello di archiviazione. Per ulteriori informazioni, vedere Procedura: definire un modello con un tipo complesso (Entity Framework).

Mapping di un elemento FunctionImport

In questo scenario una stored procedure del modello di archiviazione viene mappata a un elemento FunctionImport nel modello concettuale. Questa funzione viene eseguita per restituire dati dell'entità utilizzando la stored procedure di cui è stato eseguito il mapping. Per ulteriori informazioni, vedere Procedura: definire un modello con una stored procedure (Entity Framework).

Mapping della funzione di modifica

In questo scenario le stored procedure sono definite nel modello di archiviazione che inserisce, aggiorna ed elimina i dati. Queste funzioni sono definite per un tipo di entità per fornire la funzionalità di aggiornamento per un tipo di entità specifico. Per ulteriori informazioni, vedere Supporto delle stored procedure (Entity Framework).

Mapping della query di definizione

In questo scenario una query viene definita nel modello di archiviazione che rappresenta una tabella nell'origine dati. La query viene espressa nel linguaggio di query nativo dell'origine dati, ad esempio Transact-SQL, in caso di esecuzione del mapping a un database SQL Server. Questo elemento DefiningQuery viene mappato a un tipo di entità nel modello concettuale. La query viene definita nel linguaggio di query specifico dell'archivio. Per ulteriori informazioni, vedere Elemento DefiningQuery (EntityContainer SSDL). Quando si utilizza una query di definizione, gli aggiornamenti non possono essere salvati in modo permanente nell'origine dati mediante il processo di aggiornamento standard. Possono invece essere effettuati definendo i mapping della funzione di modifica. Per ulteriori informazioni, vedere Supporto delle stored procedure (Entity Framework).

Mapping di una query di visualizzazione

In questo scenario un mapping di sola lettura viene definito tra i tipi di entità del modello concettuale e le tabelle relazionali del modello di archiviazione. Questo mapping viene definito in base a una query Entity SQL rispetto al modello di archiviazione che restituisce entità nel modello concettuale. Per ulteriori informazioni, vedere Elemento QueryView (EntitySetMapping). Quando si utilizza una visualizzazione di query, gli aggiornamenti non possono essere salvati in modo permanente nell'origine dati mediante il processo di aggiornamento standard. Possono invece essere effettuati definendo i mapping della funzione di modifica. Per ulteriori informazioni, vedere Supporto delle stored procedure (Entity Framework).

Mapping di AssociationSet

Le associazioni definiscono le relazioni tra entità. In un mapping semplice con un'associazione uno-a-uno o uno a molti le associazioni che definiscono le relazioni nel modello concettuale vengono mappate alle associazioni del modello di archiviazione. Vengono supportati anche i mapping dei set di associazione più avanzati seguenti:

  • Associazioni molti-a-molti. Entrambe le entità finali dell'associazione vengono mappate a una tabella dei collegamenti nel modello di archiviazione.

  • Auto associazione. Supporta un'associazione tra due entità dello stesso tipo, ad esempio un Dipendente con un'associazione a un altro Dipendente.

  • Associazioni tra tipi derivati. Questo mapping supporta un'associazione tra un tipo derivato in una gerarchia e un tipo derivato in una seconda gerarchia.

Per ulteriori informazioni, vedere Associazione (EDM).

Per informazioni sugli scenari di mapping supportati dagli strumenti di Entity Data Model, vedere Cenni preliminari su ADO.NET Entity Data Model Designer.

Vedere anche

Concetti

Ereditarietà in Entity Data Model (scenari applicativi)
Risorse di Entity Framework
Eseguire una query su Entity Data Model (scenari applicativi)
Classi Entity Data Model di programma (scenari applicativi)
Definire un Entity Data Model (scenari applicativi)

Altre risorse

Guida per programmatori (Entity Framework)
Esempi (Entity Framework)