Condividi tramite


Generazione di un modello EDM

I servizi e le applicazioni Entity Framework sono basati su Entity Data Model (EDM). Questo modello rappresenta i dati delle applicazioni come un set di entità e relazioni mappate a un'origine dati definita. Un modello EDM è costituito da un modello concettuale espresso sotto forma di entità e relazioni, un modello di archiviazione che rappresenta lo schema del modello logico e un mapping tra i due modelli. La fase di sviluppo di un progetto inizia solitamente con il modello concettuale, dal quale viene quindi derivato il modello logico.

Per soddisfare le esigenze degli sviluppatori che desiderano derivare Entity Data Model da un database esistente, Entity Framework fornisce un set di strumenti per la generazione e la convalida di un modello EDM, nonché la creazione di classi programmabili basate sul modello concettuale. L'utilità del prompt dei comandi Generatore EDM (EdmGen.exe) consente di generare un modello semplice con un mapping uno-a-uno tra entità e tabelle in un'origine dati. È anche possibile utilizzare EdmGen.exe per generare le classi di dati basate sui tipi di entità e per convalidare un modello EDM. EdmGen.exe fa parte dei componenti di runtime di Entity Framework in .NET Framework 3.5 Service Pack 1 (SP1).

Visual Studio 2008 SP1 include un set integrato di strumenti di Entity Data Model per la generazione di un modello che include oggetti selezionati da un'origine dati. È quindi possibile modificare il modello concettuale e il mapping utilizzando Entity Data Model Designer per ottenere il modello concettuale richiesto dall'applicazione. Per ulteriori informazioni, vedere Strumenti di Entity Data Model.

Considerazioni

Le considerazioni seguenti riguardano la generazione di un modello EDM:

  • Tutte le entità devono disporre di chiavi. Se il database include una tabella senza una chiave primaria, viene eseguito dagli strumenti EDM un tentativo di dedurre una chiave per l'entità corrispondente. Tramite gli strumenti EDM viene inoltre generato un elemento DefiningQuery nello schema dell'archivio che rende di sola lettura i dati per l'entità. Per consentire l'aggiornamento dei dati dell'entità, è necessario verificare che la chiave generata sia una chiave valida, quindi rimuovere l'elemento DefiningQuery.

  • Una tabella che rappresenta una relazione molti-a-molti tra due tabelle nel database può non disporre di un'entità equivalente nello schema concettuale. Quando dagli strumenti EDM viene individuata una tabella di questo tipo senza colonne eccetto le due che rappresentano chiavi esterne, la tabella di mapping viene rappresentata nello schema concettuale come un'associazione molti-a-molti anziché come un'entità. L'associazione CourseInstructor nel modello School costituisce un esempio di questo comportamento. Per ulteriori informazioni, vedere Generazione del modello EDM School (guida rapida di Entity Framework).

  • In questa versione gli strumenti di Entity Data Model supportano solo la generazione automatica di EDM in base a un'origine dati esistente. Non è possibile generare automaticamente un'origine dati, ad esempio un database relazionale, in base al modello concettuale.

Modello School

Negli argomenti di questa sezione della Guida introduttiva viene fatto riferimento a un database di esempio denominato School. Vedere Creazione del database di esempio School (guida rapida di Entity Framework) per lo script che consente di generare il database School in SQL Server.

Il database School contiene le tabelle seguenti:

  • Course

  • CourseGrade

  • CourseInstructor

  • Department

  • OfficeAssignment

  • OnlineCourse

  • OnsiteCourse

  • Person

Questo database di esempio consente di mettere in evidenza numerosi scenari di modellazione complessi supportati dagli strumenti di Entity Data Model. Lo script consente di creare le relazioni tra le tabelle e di inserire i dati di esempio, in modo che sia possibile eseguire gli esempi per analizzarne il funzionamento. Di seguito viene illustrato il database School EDM visualizzato in ADO.NET Entity Data Model Designer:

School EDM nella finestra di progettazione delle entità

Vedere anche

Concetti

Mapping di un modello concettuale a uno schema di archiviazione
Modellazione dei dati in Entity Framework

Altre risorse

Configurazione di Entity Framework (attività di Entity Framework)
Guida introduttiva (Entity Framework)
Strumenti di Entity Data Model
Specifiche EDM
Specifica di schemi e mapping (Entity Framework)