Idioma

DbContext Classe

Definição

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 contextOwnsConnection for false.

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 contextOwnsConnection for false.

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 como true 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.

Aplica-se a