DbContext Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Un'istanza di DbContext rappresenta una combinazione dei modelli Unit Of Work e Repository, in modo che possa essere usato per eseguire query da un database e raggruppare le modifiche che verranno quindi scritte nell'archivio come unità. DbContext è concettualmente simile a ObjectContext.
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", Justification="Casing is intentional")]
public class DbContext : IDisposable, System.Data.Entity.Infrastructure.IObjectContextAdapter
public class DbContext : IDisposable, System.Data.Entity.Infrastructure.IObjectContextAdapter
type DbContext = class
interface IDisposable
interface IObjectContextAdapter
Public Class DbContext
Implements IDisposable, IObjectContextAdapter
- Ereditarietà
-
DbContext
- Derivato
- Attributi
- Implementazioni
Commenti
DbContext viene in genere usato con un tipo derivato che contiene DbSet<TEntity> proprietà per le entità radice del modello. Questi set vengono inizializzati automaticamente quando viene creata l'istanza della classe derivata. Questo comportamento può essere modificato applicando l'attributo SuppressDbSetInitializationAttribute all'intera classe di contesto derivata o alle singole proprietà della classe. Il modello Entity Data Model che supporta il contesto può essere specificato in diversi modi. Quando si usa l'approccio Code First, le DbSet<TEntity> proprietà nel contesto derivato vengono usate per compilare un modello per convenzione. Il metodo OnModelCreating protetto può essere sottoposto a override per modificare questo modello. È possibile ottenere un maggiore controllo sul modello usato per l'approccio Model First creando un DbCompiledModel oggetto in modo esplicito da un DbModelBuilder modello e passando uno dei costruttori DbContext. Quando si usa l'approccio Database First o Model First,Entity Data Model può essere creato usando l'entità Designer (o manualmente tramite la creazione di un file EDMX) e quindi questo modello può essere specificato usando la stringa di connessione dell'entità o un EntityConnection oggetto. La connessione al database, incluso il nome del database, può essere specificata in diversi modi. Se il costruttore DbContext senza parametri viene chiamato da un contesto derivato, il nome del contesto derivato viene usato per trovare una stringa di connessione nel file app.config o web.config. Se non viene trovata alcuna stringa di connessione, il nome viene passato alla classe DefaultConnectionFactory registrata nella Database classe . La factory di connessione utilizza quindi il nome del contesto come nome del database in una stringa di connessione predefinita. Questa stringa di connessione predefinita punta a .\SQLEXPRESS nel computer locale a meno che non sia registrata un'altra DefaultConnectionFactory. Anziché usare il nome di contesto derivato, è anche possibile specificare il nome di connessione/database in modo esplicito passando il nome a uno dei costruttori DbContext che accetta una stringa. Il nome può essere passato anche nel formato "nome=mionome". In tal caso, è necessario che il nome sia presente nel file di configurazione, altrimenti verrà generata un'eccezione. Si noti che la connessione trovata nel file app.config o web.config può essere una normale stringa di connessione del database (non una stringa di connessione di Entity Framework speciale) nel qual caso dbContext userà Code First. Tuttavia, se la connessione trovata nel file di configurazione è una stringa di connessione di Entity Framework speciale, il databaseContext userà Database/Model First e il modello specificato nella stringa di connessione verrà usato. Anziché utilizzare il nome del database o la connessione, è possibile utilizzare anche un oggetto DbConnection esistente o creato in modo esplicito. Un DbModelBuilderVersionAttribute oggetto può essere applicato a una classe derivata da DbContext per impostare la versione delle convenzioni usate dal contesto quando crea un modello. Se non viene applicato alcun attributo, verrà utilizzata la versione delle convenzioni più recente.
Costruttori
DbContext() |
Costruisce una nuova istanza del contesto utilizzando le convenzioni per creare il nome del database al quale verrà effettuata una connessione. Il nome per convenzione è il nome completo (spazio dei nomi + nome classe) della classe di contesto derivata. Per creare una connessione, vedere le osservazioni della classe. |
DbContext(DbCompiledModel) |
Costruisce una nuova istanza del contesto utilizzando le convenzioni per creare il nome del database al quale verrà effettuata una connessione e la inizializza dal modello specificato. Il nome per convenzione è il nome completo (spazio dei nomi + nome classe) della classe di contesto derivata. Per creare una connessione, vedere le osservazioni della classe. |
DbContext(DbConnection, Boolean) |
Costruisce una nuova istanza del contesto utilizzando la connessione esistente per connettersi a un database.
La connessione non verrà eliminata quando il contesto viene eliminato se |
DbContext(DbConnection, DbCompiledModel, Boolean) |
Costruisce una nuova istanza del contesto utilizzando la connessione esistente per connettersi a un database e la inizializza dal modello specificato.
La connessione non verrà eliminata quando il contesto viene eliminato se |
DbContext(ObjectContext, Boolean) |
Costruisce una nuova istanza di contesto intorno a un oggetto ObjectContext esistente. |
DbContext(ObjectContext, Boolean) |
Costruisce una nuova istanza di contesto intorno a un oggetto ObjectContext esistente. |
DbContext(String) |
Costruisce una nuova istanza del contesto utilizzando la stringa specificata come nome o stringa di connessione per il database al quale verrà effettuata una connessione. Per creare una connessione, vedere le osservazioni della classe. |
DbContext(String, DbCompiledModel) |
Costruisce una nuova istanza del contesto utilizzando la stringa specificata come nome o stringa di connessione per il database al quale verrà effettuata una connessione e la inizializza dal modello specificato. Per creare una connessione, vedere le osservazioni della classe. |
Proprietà
ChangeTracker |
Fornisce l'accesso alle funzionalità del contesto che gestiscono il rilevamento delle modifiche delle entità. |
Configuration |
Fornisce l'accesso alle opzioni di configurazione del contesto. |
Database |
Crea un'istanza di database per questo contesto che consente controlli di creazione/eliminazione/esistenza per il database sottostante. |
Metodi
Dispose() |
Chiama il metodo Dispose protetto. |
Dispose(Boolean) |
Elimina il contesto. Il sottostante ObjectContext viene eliminato anche se è stato creato da questo contesto o la proprietà è stata passata a questo contesto al momento della creazione di questo contesto. La connessione al database (DbConnection oggetto) viene eliminata anche se è stata creata da questo contesto o la proprietà è stata passata a questo contesto quando questo contesto è stato creato. |
Entry(Object) |
Ottiene un DbEntityEntry oggetto per l'entità specificata che fornisce l'accesso alle informazioni sull'entità e sulla possibilità di eseguire azioni nell'entità. |
Entry<TEntity>(TEntity) |
Ottiene un DbEntityEntry<TEntity> oggetto per l'entità specificata che fornisce l'accesso alle informazioni sull'entità e sulla possibilità di eseguire azioni nell'entità. |
Equals(Object) |
Un'istanza di DbContext rappresenta una combinazione dei modelli Unit Of Work e Repository, in modo che possa essere usato per eseguire query da un database e raggruppare le modifiche che verranno quindi scritte nell'archivio come unità. DbContext è concettualmente simile a ObjectContext. |
GetHashCode() |
Un'istanza di DbContext rappresenta una combinazione dei modelli Unit Of Work e Repository, in modo che possa essere usato per eseguire query da un database e raggruppare le modifiche che verranno quindi scritte nell'archivio come unità. DbContext è concettualmente simile a ObjectContext. |
GetType() |
Un'istanza di DbContext rappresenta una combinazione dei modelli Unit Of Work e Repository, in modo che possa essere usato per eseguire query da un database e raggruppare le modifiche che verranno quindi scritte nell'archivio come unità. DbContext è concettualmente simile a ObjectContext. |
GetValidationErrors() |
Convalida le entità monitorate e restituisce una raccolta di risultati di DbEntityValidationResult convalida. |
OnModelCreating(DbModelBuilder) |
Tale metodo viene chiamato dopo l'inizializzazione del modello di un contesto derivato, ma prima che il modello sia stato bloccato e utilizzato per inizializzare il contesto. L'implementazione predefinita di tale metodo non esegue alcuna operazione, ma è possibile eseguirne l'override in una classe derivata in modo tale da poter configurare ulteriormente il modello prima che venga bloccato. |
SaveChanges() |
Salva tutte le modifiche apportate in questo contesto nel database sottostante. |
SaveChangesAsync() |
Salva in modo asincrono tutte le modifiche apportate in questo contesto al database sottostante. |
SaveChangesAsync(CancellationToken) |
Salva in modo asincrono tutte le modifiche apportate in questo contesto al database sottostante. |
Set(Type) |
Restituisce un'istanza non generica DbSet per l'accesso alle entità del tipo specificato nel contesto e all'archivio sottostante. |
Set<TEntity>() |
Restituisce un'istanza DbSet<TEntity> per l'accesso alle entità del tipo specificato nel contesto e all'archivio sottostante. |
ShouldValidateEntity(DbEntityEntry) |
Punto di estensione che consente all'utente di eseguire l'override del comportamento predefinito della convalida solo delle entità Added e Modified. |
ToString() |
Un'istanza di DbContext rappresenta una combinazione dei modelli Unit Of Work e Repository, in modo che possa essere usato per eseguire query da un database e raggruppare le modifiche che verranno quindi scritte nell'archivio come unità. DbContext è concettualmente simile a ObjectContext. |
ValidateEntity(DbEntityEntry, IDictionary<Object,Object>) |
Punto di estensione che consente all'utente di personalizzare la convalida di un'entità o di filtrare i risultati della convalida. Chiamato da GetValidationErrors(). |
Implementazioni dell'interfaccia esplicita
IObjectContextAdapter.ObjectContext |
Restituisce Entity Framework ObjectContext sottostante a questo contesto. |