Condividi tramite


Utilizzo di dati delle entità

Entity Framework compila un set di schemi concettuali e di archiviazione, insieme ai mapping tra i due tipi di schemi, in coppie bidirezionali di istruzioni Entity SQL dette visualizzazioni client. Queste visualizzazioni guidano l'elaborazione delle query e degli aggiornamenti nel motore di runtime. Il compilatore di mapping che genera le visualizzazioni può essere richiamato in fase di progettazione o in fase di esecuzione quando viene eseguita la prima query su un schema Entity Data Model (EDM).

Entity Framework è compilato in base a provider di dati ADO.NET specifici dell'archiviazione fornendo un oggetto EntityConnection a un provider di dati e a un database relazionale sottostanti.

Quando una query viene eseguita, viene analizzata e convertita in un albero dei comandi canonico, che è una rappresentazione del modello a oggetti della query. Gli alberi dei comandi canonici rappresentano comandi di selezione, aggiornamento, inserimento ed eliminazione. Tutte le elaborazioni successive vengono eseguite nell'albero dei comandi, che costituisce il mezzo di comunicazione tra il provider System.Data.EntityClient e il provider di dati .NET Framework sottostante, ad esempio System.Data.SqlClient.

Nel diagramma seguente viene illustrata l'architettura di Entity Framework per l'accesso ai dati:

Diagramma dell'architettura di Entity Framework

Esecuzione di query sugli oggetti

Tramite gli strumenti di Entity Framework viene generata una classe derivata da ObjectContext che rappresenta il contenitore di entità definito nel modello concettuale. La classe ObjectContext supporta le query su EDM che restituiscono entità come oggetti, nonché la creazione, l'aggiornamento e l'eliminazione di oggetti entità. Entity Framework supporta le query di oggetto su EDM. Le query possono essere create utilizzando metodi del generatore di query di oggetto, Entity SQL e LINQ (Language Integrated Query).

In un modello concettuale le entità sono correlate tra loro tramite associazioni. Nel livello oggetti queste associazioni vengono rappresentate da proprietà che espongono insiemi di oggetti correlati basati su un riferimento all'entità. Nel modello School, ad esempio, Department.Course consente di ottenere un insieme di entità di oggetti Course in base all'associazione tra Course e Department. Poiché gli oggetti a cui si fa riferimento non vengono caricati automaticamente, è necessario chiamare il metodo Load sul riferimento all'entità per caricare i dati degli oggetti correlati nel contesto dell'oggetto. È inoltre possibile specificare un percorso della query che definisce quali oggetti correlati caricare con gli oggetti restituiti. Per ulteriori informazioni, vedere Esecuzione di query sui dati come oggetti (Entity Framework).

Nell'esempio seguente della guida rapida viene illustrata una query che, in caso di esecuzione, consente di recuperare tutti gli oggetti Department. Una definizione del percorso della query garantisce che vengano restituiti anche gli oggetti Course correlati agli oggetti Department. Una clausola WHERE Entity SQL consente di ordinare gli oggetti restituiti in base a Name.

' Define a query that returns all Department objects and related
' Course objects, ordered by name.
Dim departmentQuery As ObjectQuery(Of Department) = _
    schoolContext.Department.Include("Course").OrderBy("it.Name")
// Define a query that returns all Department objects and related
// Course objects, ordered by name.
ObjectQuery<Department> departmentQuery =
    schoolContext.Department.Include("Course").OrderBy("it.Name");

Per ulteriori informazioni, vedere Esecuzione di query sui dati come oggetti (Entity Framework).

È possibile definire un modello EDM in cui vengono utilizzate stored procedure per eseguire query nell'origine dati. I set di risultati di queste stored procedure sono mappati alle entità nel modello concettuale. Per ulteriori informazioni, vedere Supporto delle stored procedure (Entity Framework).

Utilizzo di oggetti

Un oggetto in un contesto dell'oggetto è una rappresentazione di un tipo di entità dei dati nell'origine dati. È possibile modificare, creare ed eliminare oggetti in un contesto dell'oggetto. Il contesto dell'oggetto gestisce le identità e le relazioni tra gli oggetti. È anche possibile serializzare gli oggetti e associare gli oggetti ai controlli. Per ulteriori informazioni, vedere Utilizzo di oggetti (Entity Framework).

Nell'esempio seguente della guida rapida viene ottenuto un insieme di oggetti Course correlati a un oggetto Department e l'insieme viene associato a un controllo DataGridView.

' Get the object for the selected department.
Dim department As Department = _
    CType(Me.departmentList.SelectedItem, Department)

' Bind the grid view to the collection of Course objects 
' that are related to the selected Department object.
courseGridView.DataSource = department.Course
// Get the object for the selected department.
Department department = 
    (Department)this.departmentList.SelectedItem;

// Bind the grid view to the collection of Course objects 
// that are related to the selected Department object.
courseGridView.DataSource = department.Course;

Entity Framework consente di rilevare le modifiche ai dati delle entità e di rendere persistenti le modifiche nell'origine dati. Nell'esempio seguente della guida rapida le modifiche nel contesto dell'oggetto vengono scritte nel database.

' Save object changes to the database, display a message, 
' and refresh the form.
numChanges = schoolContext.SaveChanges()
// Save object changes to the database, display a message,
// and refresh the form.
numChanges = schoolContext.SaveChanges();

Per ulteriori informazioni, vedere Aggiunta, modifica ed eliminazione di oggetti (Entity Framework).

È possibile definire un modello EDM in cui vengono utilizzate stored procedure per inserire, aggiornare ed eliminare i dati nell'origine dati. Queste stored procedure sono mappate alle entità nel modello concettuale. Per ulteriori informazioni, vedere Supporto delle stored procedure (Entity Framework).

Vedere anche

Concetti

Esempi relativi a LINQ to Entities
Tipi EDM (Entity Data Model)
Relazioni in Entity Data Model

Altre risorse

Object Services (Entity Framework)
Scenari applicativi (Entity Framework)