DbContext Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Uma instância DbContext representa uma combinação dos padrões unidade de trabalho e repositório, de modo que pode ser usada para consultar de um banco de dados e agrupar alterações que serão gravadas novamente no repositório como uma unidade. DbContext é conceitualmente semelhante 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
- Herança
-
DbContext
- Derivado
- Atributos
- Implementações
Comentários
O DbContext geralmente é usado com um tipo derivado que contém DbSet<TEntity> propriedades para as entidades raiz do modelo. Esses conjuntos são inicializados automaticamente quando a instância da classe derivada é criada. Esse comportamento pode ser modificado aplicando o SuppressDbSetInitializationAttribute atributo a toda a classe de contexto derivada ou a propriedades individuais na classe. O Modelo de Dados de Entidade que faz backup do contexto pode ser especificado de várias maneiras. Ao usar a abordagem Code First, as DbSet<TEntity> propriedades no contexto derivado são usadas para criar um modelo por convenção. O método OnModelCreating protegido pode ser substituído para ajustar esse modelo. Mais controle sobre o modelo usado para a abordagem Model First pode ser obtido criando explicitamente DbCompiledModel de um DbModelBuilder e passando esse modelo para um dos construtores DbContext. Ao usar a abordagem Database First ou Model First, o Modelo de Dados de Entidade pode ser criado usando o Designer de Entidade (ou manualmente por meio da criação de um arquivo EDMX) e, em seguida, esse modelo pode ser especificado usando a entidade cadeia de conexão ou um EntityConnection objeto. A conexão com o banco de dados (incluindo o nome do banco de dados) pode ser especificada de várias maneiras. Se o construtor DbContext sem parâmetros for chamado de um contexto derivado, o nome do contexto derivado será usado para localizar um cadeia de conexão no arquivo app.config ou web.config. Se nenhum cadeia de conexão for encontrado, o nome será passado para o DefaultConnectionFactory registrado na Database classe. Em seguida, a fábrica de conexões usa o nome de contexto como o nome do banco de dados em um cadeia de conexão padrão. (Esse padrão cadeia de conexão aponta para .\SQLEXPRESS no computador local, a menos que um DefaultConnectionFactory diferente esteja registrado.) Em vez de usar o nome de contexto derivado, o nome de conexão/banco de dados também pode ser especificado explicitamente passando o nome para um dos construtores DbContext que usa uma cadeia de caracteres. O nome também pode ser passado no formulário "name=myname", caso em que o nome deve ser encontrado no arquivo de configuração ou uma exceção será gerada. Observe que a conexão encontrada no arquivo app.config ou web.config pode ser um banco de dados normal cadeia de conexão (não um cadeia de conexão especial do Entity Framework) nesse caso, o DbContext usará o Code First. No entanto, se a conexão encontrada no arquivo de configuração for uma estrutura de entidade especial cadeia de conexão, o DbContext usará Database/Model First e o modelo especificado no cadeia de conexão será usado. Um DbConnection existente ou explicitamente criado também pode ser usado em vez do nome do banco de dados/conexão. Um DbModelBuilderVersionAttribute pode ser aplicado a uma classe derivada de DbContext para definir a versão das convenções usadas pelo contexto quando ele cria um modelo. Se nenhum atributo for aplicado, a versão mais recente das convenções será usada.
Construtores
| Nome | Descrição |
|---|---|
| DbContext() |
Constrói uma nova instância de contexto usando convenções para criar o nome do banco de dados ao qual uma conexão será feita. O nome por convenção é o nome completo (namespace + nome da classe) da classe de contexto derivada. Consulte as observações de classe sobre como isso é usado para criar uma conexão. |
| DbContext(DbCompiledModel) |
Constrói uma nova instância de contexto usando convenções para criar o nome do banco de dados para o qual uma conexão será feita e a inicializa do modelo fornecido. O nome por convenção é o nome completo (namespace + nome da classe) da classe de contexto derivada. Consulte as observações de classe sobre como isso é usado para criar uma conexão. |
| DbContext(DbConnection, Boolean) |
Constrói uma nova instância de contexto usando a conexão existente para se conectar a um banco de dados.
A conexão não será descartada quando o contexto for descartado se |
| DbContext(DbConnection, DbCompiledModel, Boolean) |
Constrói uma nova instância de contexto usando a conexão existente para se conectar a um banco de dados e a inicializa do modelo fornecido.
A conexão não será descartada quando o contexto for descartado se |
| DbContext(ObjectContext, Boolean) |
Constrói uma nova instância de contexto em torno de um ObjectContext existente. |
| DbContext(ObjectContext, Boolean) |
Constrói uma nova instância de contexto em torno de um ObjectContext existente. <param name="objectContext">Um ObjectContext existente para encapsular com o novo contexto.</param><param name="dbContextOwnsObjectContext">Se definido comotrue ObjectContext for descartado quando o DbContext for descartado, caso contrário, o chamador deverá descartar a conexão.</param>
|
| DbContext(String, DbCompiledModel) |
Constrói uma nova instância de contexto usando a cadeia de caracteres fornecida como o nome ou cadeia de conexão para o banco de dados para o qual uma conexão será feita e a inicializa do modelo fornecido. Consulte as observações de classe sobre como isso é usado para criar uma conexão. |
| DbContext(String) |
Constrói uma nova instância de contexto usando a cadeia de caracteres fornecida como o nome ou cadeia de conexão para o banco de dados ao qual uma conexão será feita. Consulte as observações de classe sobre como isso é usado para criar uma conexão. |
Propriedades
| Nome | Descrição |
|---|---|
| ChangeTracker |
Fornece acesso aos recursos do contexto que lidam com o controle de alterações de entidades. |
| Configuration |
Fornece acesso às opções de configuração para o contexto. |
| Database |
Cria uma instância de banco de dados para esse contexto que permite verificações de criação/exclusão/existência para o banco de dados subjacente. |
Métodos
| Nome | Descrição |
|---|---|
| Dispose() |
Chama o método Dispose protegido. |
| Dispose(Boolean) |
Descarta o contexto. O subjacente ObjectContext também será descartado se ele foi criado por esse contexto ou a propriedade foi passada para esse contexto quando esse contexto foi criado. A conexão com o banco de dados (DbConnection objeto) também será descartada se ele foi criado por esse contexto ou a propriedade foi passada para esse contexto quando esse contexto foi criado. |
| Entry(Object) |
Obtém um DbEntityEntry objeto para a entidade fornecida que fornece acesso a informações sobre a entidade e a capacidade de executar ações na entidade. |
| Entry<TEntity>(TEntity) |
Obtém um DbEntityEntry<TEntity> objeto para a entidade fornecida que fornece acesso a informações sobre a entidade e a capacidade de executar ações na entidade. |
| Equals(Object) |
Uma instância DbContext representa uma combinação dos padrões unidade de trabalho e repositório, de modo que pode ser usada para consultar de um banco de dados e agrupar alterações que serão gravadas novamente no repositório como uma unidade. DbContext é conceitualmente semelhante a ObjectContext. |
| GetHashCode() |
Uma instância DbContext representa uma combinação dos padrões unidade de trabalho e repositório, de modo que pode ser usada para consultar de um banco de dados e agrupar alterações que serão gravadas novamente no repositório como uma unidade. DbContext é conceitualmente semelhante a ObjectContext. |
| GetType() |
Uma instância DbContext representa uma combinação dos padrões unidade de trabalho e repositório, de modo que pode ser usada para consultar de um banco de dados e agrupar alterações que serão gravadas novamente no repositório como uma unidade. DbContext é conceitualmente semelhante a ObjectContext. |
| GetValidationErrors() |
Valida entidades controladas e retorna uma coleção de resultados de DbEntityValidationResult validação. |
| OnModelCreating(DbModelBuilder) |
Esse método é chamado quando o modelo para um contexto derivado foi inicializado, mas antes do modelo ser bloqueado e usado para inicializar o contexto. A implementação padrão desse método não faz nada, mas pode ser substituída em uma classe derivada de modo que o modelo possa ser configurado ainda mais antes de ser bloqueado. |
| SaveChanges() |
Salva todas as alterações feitas nesse contexto no banco de dados subjacente. |
| SaveChangesAsync() |
Salva de forma assíncrona todas as alterações feitas nesse contexto no banco de dados subjacente. |
| SaveChangesAsync(CancellationToken) |
Salva de forma assíncrona todas as alterações feitas nesse contexto no banco de dados subjacente. |
| Set(Type) |
Retorna uma instância não genérica DbSet para acesso a entidades do tipo fornecido no contexto e no repositório subjacente. |
| Set<TEntity>() |
Retorna uma DbSet<TEntity> instância para acesso a entidades do tipo especificado no contexto e no repositório subjacente. |
| ShouldValidateEntity(DbEntityEntry) |
Ponto de extensão permitindo que o usuário substitua o comportamento padrão de validar apenas entidades adicionadas e modificadas. |
| ToString() |
Uma instância DbContext representa uma combinação dos padrões unidade de trabalho e repositório, de modo que pode ser usada para consultar de um banco de dados e agrupar alterações que serão gravadas novamente no repositório como uma unidade. DbContext é conceitualmente semelhante a ObjectContext. |
| ValidateEntity(DbEntityEntry, IDictionary<Object,Object>) |
Ponto de extensão permitindo que o usuário personalize a validação de uma entidade ou filtre os resultados de validação. Chamado por GetValidationErrors(). |
Implantações explícitas de interface
| Nome | Descrição |
|---|---|
| IObjectContextAdapter.ObjectContext |
Retorna o ObjectContext do Entity Framework que está subjacente a esse contexto. |