DbContext Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Una instancia de DbContext representa una combinación de los patrones de unidad de trabajo y repositorio de modo que se pueda usar para consultar desde una base de datos y agrupar los cambios que se escribirán de nuevo en el almacén como una unidad. DbContext es conceptualmente similar 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
- Herencia
-
DbContext
- Derivado
- Atributos
- Implementaciones
Comentarios
DbContext se usa normalmente con un tipo derivado que contiene DbSet<TEntity> propiedades para las entidades raíz del modelo. Estos conjuntos se inicializan automáticamente cuando se crea la instancia de la clase derivada. Este comportamiento se puede modificar aplicando el SuppressDbSetInitializationAttribute atributo a toda la clase de contexto derivada o a propiedades individuales de la clase . Entity Data Model que respalda el contexto puede especificarse de varias maneras. Al usar el enfoque Code First, las DbSet<TEntity> propiedades del contexto derivado se usan para crear un modelo por convención. El método OnModelCreating protegido se puede invalidar para ajustar este modelo. Se puede obtener más control sobre el modelo usado para el enfoque Model First mediante la creación de un elemento DbCompiledModel explícitamente a partir de y el paso de DbModelBuilder este modelo a uno de los constructores DbContext. Cuando se usa el enfoque Database First o Model First, el modelo de datos de entidad se puede crear mediante entity Designer (o manualmente a través de la creación de un archivo EDMX) y, a continuación, se puede especificar este modelo mediante una cadena de conexión de entidad o un EntityConnection objeto. La conexión a la base de datos (incluido el nombre de la base de datos) se puede especificar de varias maneras. Si se llama al constructor DbContext sin parámetros desde un contexto derivado, se usa el nombre del contexto derivado para buscar una cadena de conexión en el archivo app.config o web.config. Si no se encuentra ninguna cadena de conexión, el nombre se pasa al defaultConnectionFactory registrado en la Database clase . El generador de conexiones utiliza el nombre del contexto como nombre de la base de datos en una cadena de conexión predeterminada. (Esta cadena de conexión predeterminada apunta a .\SQLEXPRESS en el equipo local a menos que se registre un defaultConnectionFactory diferente). En lugar de usar el nombre de contexto derivado, el nombre de la conexión o la base de datos también se puede especificar explícitamente pasando el nombre a uno de los constructores DbContext que toma una cadena. El nombre también se puede pasar en la forma "name=myname", en cuyo caso el nombre debe encontrarse en el archivo de configuración; de lo contrario, se producirá una excepción. Tenga en cuenta que la conexión que se encuentra en el archivo app.config o web.config puede ser una cadena de conexión de base de datos normal (no una cadena de conexión especial de Entity Framework) en cuyo caso DbContext usará Code First. Sin embargo, si la conexión encontrada en el archivo de configuración es una cadena de conexión especial de Entity Framework, dbContext usará Database/Model First y se usará el modelo especificado en la cadena de conexión. También puede utilizarse un objeto DbConnection existente o creado explícitamente en lugar del nombre de la base de datos/conexión. Se DbModelBuilderVersionAttribute puede aplicar a una clase derivada de DbContext para establecer la versión de las convenciones usadas por el contexto cuando crea un modelo. Si no se aplica ningún atributo, se utilizará la versión más reciente de convenciones.
Constructores
DbContext() |
Crea una nueva instancia de contexto utilizando convenciones para crear el nombre de la base de datos con la que se realizará una conexión. El nombre por convención es el nombre completo (espacio de nombres + nombre de clase) de la clase de contexto derivada. Consulte los comentarios de la clase sobre cómo se usa para crear una conexión. |
DbContext(DbCompiledModel) |
Crea una nueva instancia de contexto utilizando convenciones para crear el nombre de la base de datos con la que se realizará una conexión y la inicializa a partir del modelo determinado. El nombre por convención es el nombre completo (espacio de nombres + nombre de clase) de la clase de contexto derivada. Consulte los comentarios de la clase sobre cómo se usa para crear una conexión. |
DbContext(DbConnection, Boolean) |
Crea una nueva instancia de contexto utilizando la conexión existente para conectar con una base de datos.
La conexión no se eliminará cuando se elimine el contexto si |
DbContext(DbConnection, DbCompiledModel, Boolean) |
Crea una nueva instancia de contexto utilizando la conexión existente para conectar con una base de datos y la inicializa a partir del modelo determinado.
La conexión no se eliminará cuando se elimine el contexto si |
DbContext(ObjectContext, Boolean) |
Construye una nueva instancia de contexto alrededor de un ObjectContext existente. |
DbContext(ObjectContext, Boolean) |
Construye una nueva instancia de contexto alrededor de un ObjectContext existente. |
DbContext(String) |
Crea una nueva instancia de contexto utilizando la cadena dada como nombre o cadena de conexión para la base de datos con la que se realizará una conexión. Consulte los comentarios de la clase sobre cómo se usa para crear una conexión. |
DbContext(String, DbCompiledModel) |
Crea una nueva instancia de contexto utilizando la cadena dada como nombre o cadena de conexión para la base de datos con la que se realizará una conexión y la inicializa a partir del modelo determinado. Consulte los comentarios de la clase sobre cómo se usa para crear una conexión. |
Propiedades
ChangeTracker |
Proporciona acceso a las características del contexto que tratan el seguimiento de cambios de entidades. |
Configuration |
Proporciona acceso a las opciones de configuración para el contexto. |
Database |
Crea una instancia de base de datos para este contexto que permite la creación, eliminación o existencia de comprobaciones de la base de datos subyacente. |
Métodos
Dispose() |
Llama al método Dispose protegido. |
Dispose(Boolean) |
Elimina el contexto. El subyacente ObjectContext también se elimina si este contexto lo creó o la propiedad se pasó a este contexto cuando se creó este contexto. La conexión a la base de datos (DbConnection objeto) también se elimina si se creó mediante este contexto o la propiedad se pasó a este contexto cuando se creó este contexto. |
Entry(Object) |
Obtiene un DbEntityEntry objeto para la entidad especificada que proporciona acceso a información sobre la entidad y la capacidad de realizar acciones en la entidad. |
Entry<TEntity>(TEntity) |
Obtiene un DbEntityEntry<TEntity> objeto para la entidad especificada que proporciona acceso a información sobre la entidad y la capacidad de realizar acciones en la entidad. |
Equals(Object) |
Una instancia de DbContext representa una combinación de los patrones de unidad de trabajo y repositorio de modo que se pueda usar para consultar desde una base de datos y agrupar los cambios que se escribirán de nuevo en el almacén como una unidad. DbContext es conceptualmente similar a ObjectContext. |
GetHashCode() |
Una instancia de DbContext representa una combinación de los patrones de unidad de trabajo y repositorio de modo que se pueda usar para consultar desde una base de datos y agrupar los cambios que se escribirán de nuevo en el almacén como una unidad. DbContext es conceptualmente similar a ObjectContext. |
GetType() |
Una instancia de DbContext representa una combinación de los patrones de unidad de trabajo y repositorio de modo que se pueda usar para consultar desde una base de datos y agrupar los cambios que se escribirán de nuevo en el almacén como una unidad. DbContext es conceptualmente similar a ObjectContext. |
GetValidationErrors() |
Valida las entidades con seguimiento y devuelve una colección de que contiene los resultados de DbEntityValidationResult validación. |
OnModelCreating(DbModelBuilder) |
Se llama a este método cuando el modelo para un contexto derivado se ha inicializado, pero antes de que el modelo se haya bloqueado y utilizado para inicializar el contexto. La implementación predeterminada de este método no hace nada, pero se puede reemplazar en una clase derivada de modo que el modelo se pueda configurar más adelante antes de bloquearse. |
SaveChanges() |
Guarda todos los cambios realizados en este contexto en la base de datos subyacente. |
SaveChangesAsync() |
Guarda de forma asincrónica todos los cambios realizados en este contexto en la base de datos subyacente. |
SaveChangesAsync(CancellationToken) |
Guarda de forma asincrónica todos los cambios realizados en este contexto en la base de datos subyacente. |
Set(Type) |
Devuelve una instancia no genérica DbSet para el acceso a entidades del tipo especificado en el contexto y el almacén subyacente. |
Set<TEntity>() |
Devuelve una DbSet<TEntity> instancia de para el acceso a entidades del tipo especificado en el contexto y el almacén subyacente. |
ShouldValidateEntity(DbEntityEntry) |
Punto de extensión que permite al usuario reemplazar el comportamiento predeterminado de validar solo entidades de tipo Added o Modified. |
ToString() |
Una instancia de DbContext representa una combinación de los patrones de unidad de trabajo y repositorio de modo que se pueda usar para consultar desde una base de datos y agrupar los cambios que se escribirán de nuevo en el almacén como una unidad. DbContext es conceptualmente similar a ObjectContext. |
ValidateEntity(DbEntityEntry, IDictionary<Object,Object>) |
Punto de extensión que permite al usuario personalizar la validación de una entidad o filtrar los resultados de la validación. Es llamado por el método GetValidationErrors(). |
Implementaciones de interfaz explícitas
IObjectContextAdapter.ObjectContext |
Devuelve el objectContext de Entity Framework subyacente a este contexto. |