Share via


Scenari di mapping di Entity Framework

Entity Framework supporta varie modalità di mapping di modelli concettuali a dati relazionali. Per ulteriori informazioni, vedere Modellazione e mapping (Entity Framework).

Entity Framework supporta attualmente gli scenari di mapping 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 Walkthrough: Mapping and Entity to Multiple Tables e Procedura: definire un modello con una singola entità mappata a due tabelle.

Partizionamento orizzontale nel modello concettuale

In questo scenario di mapping viene eseguito il mapping di più tipi di entità del modello concettuale con le stesse proprietà 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. Per ulteriori informazioni, vedere Procedura: definire un modello con ereditarietà tabella per gerarchia.

Ereditarietà tabella per gerarchia

In questo scenario di mapping viene eseguito il mapping di tutti i tipi in una gerarchia di ereditarietà a una singola tabella. Per definire i tipi di entità, viene utilizzata una clausola di condizione. Per ulteriori informazioni, vedere Walkthrough: Mapping Inheritance - Table-per-Hierarchy e Procedura: definire un modello con ereditarietà tabella per gerarchia (Entity Framework).

Ereditarietà tabella per tipo

In questo scenario di mapping viene eseguito il mapping di tutti i tipi a singole tabelle. Le proprietà che appartengono esclusivamente a un tipo di base o derivato sono archiviate in una tabella di cui viene eseguito il mapping a quel tipo. Per ulteriori informazioni, vedere Walkthrough: Mapping Inheritance - Table-per-Type e Procedura: definire un modello con ereditarietà tabella per tipo (Entity Framework).

Ereditarietà tabella per tipo concreto

In questo scenario di mapping viene eseguito il mapping di ciascun tipo non astratto 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 How to: Create and Modify Complex Types.

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 How to: Import a Stored Procedure e 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 Walkthrough: Mapping and Entity to Stored Procedures e Procedura: definire un modello mediante stored procedure di modifica (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 How to: Add a Defining Query. 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.

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

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.

Per ulteriori informazioni, vedere Elemento Association (CSDL).

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

Vedere anche

Attività

Procedura: definire manualmente i file di modello e di mapping (Entity Framework)

Concetti

Risorse di Entity Framework
Utilizzo di oggetti (Entity Framework)

Altre risorse

Definizione di modelli di dati avanzati (attività di Entity Framework)
ADO.NET Entity Data Model Designer
Definizione di modelli di dati avanzati (attività di Entity Framework)
Esempi (Entity Framework)