Generazione di modelli e di mapping

Le applicazioni e i servizi Entity Framework sono basati su informazioni di modello e di mapping espresse in tre linguaggi basati su XML:

CSDL rappresenta i dati dell'applicazione come un set di entità e relazioni in un modello concettuale ed è un'implementazione di Entity Data Model. Un modello di archiviazione viene espresso in SSDL e rappresenta lo schema dell'archivio dati. Il mapping tra i due modelli viene espresso in MSL.

Il contenuto CSDL, SSDL e MSL per un'applicazione può essere generato automaticamente dagli ADO.NET Entity Data Model Tools. Entity Data Model Wizard genera informazioni sul modello e sul mapping, nonché classi di dati da un database esistente. Entity Data Model Designer (Entity Designer) può essere utilizzato quindi per modificare graficamente le informazioni del modello e di mapping. In alternativa, è possibile creare graficamente un modello concettuale con Entity Designer, quindi utilizzare la Generate Database Wizard per generare automaticamente il modello di archiviazione, i mapping, le classi di dati e un database che supporta il modello concettuale. In entrambi gli scenari, è possibile utilizzare la Update Model Wizard per aggiornare le informazioni del modello e di mapping quando il database sottostante viene modificato.

Il Generatore EDM (EdmGen.exe) è un'utilità del prompt dei comandi che consente di generare un modello concettuale semplice con un mapping uno-a-uno tra entità e tabelle in un'origine dati. È anche possibile utilizzare EdmGen.exe per convalidare un modello concettuale e generare le classi di dati basate sui tipi di entità del modello. EdmGen.exe fa parte dei componenti di runtime di Entity Framework inclusi in .NET Framework a partire dalla versione 3.5 Service Pack 1 (SP1).

Considerazioni

Le considerazioni seguenti si applicano quando si utilizzano gli strumenti di Entity Data Model per generare un modello concettuale da un database esistente:

  • Tutte le entità devono disporre di chiavi. Se il database include una tabella senza una chiave primaria, gli strumenti di Entity Data Model effettuano un tentativo di dedurre una chiave per l'entità corrispondente. Tramite gli strumenti di Entity Data Model 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.

  • Se una tabella di database contiene solo chiavi esterne (definita talvolta tabella di join pura) e rappresenta una relazione molti-a-molti tra due tabelle del database, non avrà un'entità corrispondente nel modello concettuale. Quando gli strumenti di Entity Data Model incontrano tale tabella, la tabella viene rappresentata nel modello 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 file con estensione School.edmx (Guida rapida di Entity Framework).

Modello School

Negli argomenti di questa sezione di Guida introduttiva (Entity Framework) 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 un'istanza di SQL Server.

Il database School contiene le tabelle seguenti:

  • Course

  • StudentGrade

  • 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 modello School visualizzato in ADO.NET Entity Data Model Designer:

EDM School in Entity Designer

Vedere anche

Concetti

Mapping di un modello concettuale a un modello di archiviazione

Altre risorse

Configurazione di Entity Framework (attività di Entity Framework)
Guida introduttiva (Entity Framework)
Entity Data Model Tools
Specifiche CSDL, SSDL e MSL