Database (Clase)

[Esta página es específica de la versión 6 de Entity Framework. La versión más reciente está disponible como el paquete NuGet de Entity Framework. Para más información sobre Entity Framework, consulte msdn.com/es-ES/data/ef].

Una instancia de esta clase se obtiene de un objeto DbContext y se puede usar para administrar la base de datos real que respalda un DbContext o una conexión. Esto incluye la creación, eliminación y comprobación de la existencia de una base de datos. Tenga en cuenta que la eliminación y la comprobación de existencia de una base de datos pueden realizarse con solamente una conexión (es decir. sin un contexto completo) utilizando los métodos estáticos de esta clase.

Jerarquía de herencia

System.Object
  System.Data.Entity.Database

Espacio de nombres:  System.Data.Entity
Ensamblado:  EntityFramework (en EntityFramework.dll)

Sintaxis

'Declaración
<SuppressMessageAttribute("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable", Justification := "The DbContextTransaction and EntityTransaction should never be disposed by this class")> _
Public Class Database
'Uso
Dim instance As Database
[SuppressMessageAttribute("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable", Justification = "The DbContextTransaction and EntityTransaction should never be disposed by this class")]
public class Database
[SuppressMessageAttribute(L"Microsoft.Design", L"CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable", Justification = L"The DbContextTransaction and EntityTransaction should never be disposed by this class")]
public ref class Database
[<SuppressMessageAttribute("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable", Justification = "The DbContextTransaction and EntityTransaction should never be disposed by this class")>]
type Database =  class end
public class Database

El tipo Database expone los siguientes miembros.

Propiedades

  Name Descripción
Propiedad pública CommandTimeout Obtiene o establece el valor de tiempo de espera, en segundos, para todas las operaciones del contexto.El valor predeterminado es NULL, donde NULL indica que se usará el valor predeterminado del proveedor subyacente.
Propiedad pública Connection Devuelve la conexión que está siendo utilizada por este contexto.Esto puede hacer que se cree la conexión si no existe ya.
Propiedad pública CurrentTransaction Obtiene la transacción en la que está dada de alta la conexión de almacenamiento subyacente.Puede ser NULL.
Propiedad públicaMiembro estático DefaultConnectionFactory Obsoleta. Generador de conexión que se va a usar al crear una DbConnection a partir de simplemente un nombre de base de datos o una cadena de conexión.
Propiedad pública Log Establezca esta propiedad para registrar el SQL generado por el DbContext en el delegado especificado.Por ejemplo, para registrarlo en la consola, establezca esta propiedad en Write(String).

Superior

Métodos

  Name Descripción
Método público BeginTransaction() Inicia una transacción en la conexión de almacenamiento subyacente
Método público BeginTransaction(IsolationLevel) Inicia una transacción en la conexión de almacenamiento subyacente con el nivel de aislamiento especificado
Método público CompatibleWithModel Comprueba si la base de datos es compatible o no con el modelo Code First actual.
Método público Create Crea una nueva base de datos en el servidor de bases de datos para el modelo definido en el contexto de respaldo.Tenga en cuenta que la llamada a este método antes de que se haya ejecutado la estrategia de inicialización de base de datos deshabilitará la ejecución de esa estrategia.
Método público CreateIfNotExists Crea una nueva base de datos en el servidor de bases de datos para el modelo definido en el contexto de respaldo, pero solo si una base de datos con el mismo nombre no existe en el servidor.
Método público Delete() Elimina la base de datos en el servidor de bases de datos si existe; de lo contrario, no hace nada.Llamar a este método desde fuera de un inicializador marcará la base de datos como que no se ha inicializado.Esto significa que si se intenta volver a usar la base de datos una vez eliminada, se ejecutará nuevamente cualquier conjunto de inicializador y, normalmente, intentará volver a crear la base de datos automáticamente.
Método públicoMiembro estático Delete(DbConnection) Elimina la base de datos en el servidor de bases de datos si existe; de lo contrario, no hace nada.
Método públicoMiembro estático Delete(String) Elimina la base de datos en el servidor de bases de datos si existe; de lo contrario, no hace nada.La conexión con la base de datos se crea utilizando el nombre de base de datos o la cadena de conexión determinados, de la misma manera que se describe en la documentación de la clase DbContext.
Método público Equals Determina si el valor de la base de datos especificada es igual al de la base de datos actual. (Invalida a Object.Equals(Object)).
Método público ExecuteSqlCommand(String, Object[]) Ejecuta el comando de DDL/DML determinado en la base de datos.Como con cualquier API que acepte SQL, es importante parametrizar cualquier dato proporcionado por el usuario para protegerse de un ataque de inyección de SQL.Se pueden incluir marcadores de posición de parámetros en la consulta de SQL y, a continuación, proporcionar valores del parámetro como argumentos adicionales.Cualquier valor de parámetro que se proporcione se convertirá automáticamente en un DbParameter.context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternativamente, también se puede construir un DbParameter y proporcionárselo a SqlQuery.Esto permite usar parámetros nombrados en la cadena de consulta de SQL.context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Método público ExecuteSqlCommand(TransactionalBehavior, String, Object[]) Ejecuta el comando de DDL/DML determinado en la base de datos.Como con cualquier API que acepte SQL, es importante parametrizar cualquier dato proporcionado por el usuario para protegerse de un ataque de inyección de SQL.Se pueden incluir marcadores de posición de parámetros en la consulta de SQL y, a continuación, proporcionar valores del parámetro como argumentos adicionales.Cualquier valor de parámetro que se proporcione se convertirá automáticamente en un DbParameter.context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternativamente, también se puede construir un DbParameter y proporcionárselo a SqlQuery.Esto permite usar parámetros nombrados en la cadena de consulta de SQL.context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Método público ExecuteSqlCommandAsync(String, Object[]) Ejecuta de forma asincrónica el comando de DDL/DML especificado en la base de datos.Como con cualquier API que acepte SQL, es importante parametrizar cualquier dato proporcionado por el usuario para protegerse de un ataque de inyección de SQL.Se pueden incluir marcadores de posición de parámetros en la consulta de SQL y, a continuación, proporcionar valores del parámetro como argumentos adicionales.Cualquier valor de parámetro que se proporcione se convertirá automáticamente en un DbParameter.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternativamente, también se puede construir un DbParameter y proporcionárselo a SqlQuery.Esto permite usar parámetros nombrados en la cadena de consulta de SQL.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Método público ExecuteSqlCommandAsync(String, CancellationToken, Object[]) Ejecuta de forma asincrónica el comando de DDL/DML especificado en la base de datos.Como con cualquier API que acepte SQL, es importante parametrizar cualquier dato proporcionado por el usuario para protegerse de un ataque de inyección de SQL.Se pueden incluir marcadores de posición de parámetros en la consulta de SQL y, a continuación, proporcionar valores del parámetro como argumentos adicionales.Cualquier valor de parámetro que se proporcione se convertirá automáticamente en un DbParameter.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternativamente, también se puede construir un DbParameter y proporcionárselo a SqlQuery.Esto permite usar parámetros nombrados en la cadena de consulta de SQL.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Método público ExecuteSqlCommandAsync(TransactionalBehavior, String, Object[]) Ejecuta de forma asincrónica el comando de DDL/DML especificado en la base de datos.Como con cualquier API que acepte SQL, es importante parametrizar cualquier dato proporcionado por el usuario para protegerse de un ataque de inyección de SQL.Se pueden incluir marcadores de posición de parámetros en la consulta de SQL y, a continuación, proporcionar valores del parámetro como argumentos adicionales.Cualquier valor de parámetro que se proporcione se convertirá automáticamente en un DbParameter.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternativamente, también se puede construir un DbParameter y proporcionárselo a SqlQuery.Esto permite usar parámetros nombrados en la cadena de consulta de SQL.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Método público ExecuteSqlCommandAsync(TransactionalBehavior, String, CancellationToken, Object[]) Ejecuta de forma asincrónica el comando de DDL/DML especificado en la base de datos.Como con cualquier API que acepte SQL, es importante parametrizar cualquier dato proporcionado por el usuario para protegerse de un ataque de inyección de SQL.Se pueden incluir marcadores de posición de parámetros en la consulta de SQL y, a continuación, proporcionar valores del parámetro como argumentos adicionales.Cualquier valor de parámetro que se proporcione se convertirá automáticamente en un DbParameter.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternativamente, también se puede construir un DbParameter y proporcionárselo a SqlQuery.Esto permite usar parámetros nombrados en la cadena de consulta de SQL.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Método público Exists() Comprueba si la base de datos existe o no en el servidor.
Método públicoMiembro estático Exists(DbConnection) Comprueba si la base de datos existe o no en el servidor.
Método públicoMiembro estático Exists(String) Comprueba si la base de datos existe o no en el servidor.La conexión con la base de datos se crea utilizando el nombre de base de datos o la cadena de conexión determinados, de la misma manera que se describe en la documentación de la clase DbContext.
Método protegido Finalize (Se hereda de Object).
Método público GetHashCode Devuelve la función hash de esta base de datos. (Invalida a Object.GetHashCode()).
Método público GetType Obtiene el Type de la instancia actual.
Método público Initialize Ejecuta la IDatabaseInitializer<TContext> registrada en este contexto.Si "force" se establece en true, el inicializador se ejecuta independientemente de que se haya ejecutado antes o no.Esto puede ser útil si se elimina una base de datos mientras se ejecuta una aplicación y es necesario reinicializar.Si "force" se establece en false, el inicializador solo se ejecutará si no se ha ejecutado ya para este contexto, modelo y conexión en este dominio de aplicación.Este método suele utilizarse cuando es necesario asegurarse de que la base de datos se ha creado e inicializado antes de iniciarse una operación, cuando hacerlo de forma diferida puede ocasionar problemas, como cuando la operación forma parte de una transacción.
Método protegido MemberwiseClone (Se hereda de Object).
Método públicoMiembro estático SetInitializer<TContext> Establece el inicializador de la base de datos que se va a usar para el tipo de contexto especificado.Se invoca al inicializador de la base de datos cuando se usa el tipo de DbContext especificado para obtener acceso a una base de datos por primera vez.La estrategia predeterminada para los contextos Code First es una instancia de CreateDatabaseIfNotExists<TContext>.
Método público SqlQuery(Type, String, Object[]) Crea una consulta SQL sin formato que devolverá elementos del tipo determinado.El tipo puede ser cualquier tipo que tenga propiedades que coincidan con los nombres de las columnas devueltas desde la consulta, o puede ser un tipo primitivo simple.El tipo no tiene por qué ser un tipo de entidad.El contexto nunca realiza el seguimiento de los resultados de esta consulta aunque el tipo de objeto devuelto sea un tipo de entidad.Utilice el método SqlQuery(String, Object[]) para devolver entidades de las que el contexto realiza el seguimiento.Como con cualquier API que acepte SQL, es importante parametrizar cualquier dato proporcionado por el usuario para protegerse de un ataque de inyección de SQL.Se pueden incluir marcadores de posición de parámetros en la consulta de SQL y, a continuación, proporcionar valores del parámetro como argumentos adicionales.Cualquier valor de parámetro que se proporcione se convertirá automáticamente en un DbParameter.context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternativamente, también se puede construir un DbParameter y proporcionárselo a SqlQuery.Esto permite usar parámetros nombrados en la cadena de consulta de SQL.context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Método público SqlQuery<TElement>(String, Object[]) Crea una consulta SQL sin formato que devolverá elementos del tipo genérico determinado.El tipo puede ser cualquier tipo que tenga propiedades que coincidan con los nombres de las columnas devueltas desde la consulta, o puede ser un tipo primitivo simple.El tipo no tiene por qué ser un tipo de entidad.El contexto nunca realiza el seguimiento de los resultados de esta consulta aunque el tipo de objeto devuelto sea un tipo de entidad.Utilice el método SqlQuery(String, Object[]) para devolver entidades de las que el contexto realiza el seguimiento.Como con cualquier API que acepte SQL, es importante parametrizar cualquier dato proporcionado por el usuario para protegerse de un ataque de inyección de SQL.Se pueden incluir marcadores de posición de parámetros en la consulta de SQL y, a continuación, proporcionar valores del parámetro como argumentos adicionales.Cualquier valor de parámetro que se proporcione se convertirá automáticamente en un DbParameter.context.Database.SqlQuery&lt;Post&gt;("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Alternativamente, también se puede construir un DbParameter y proporcionárselo a SqlQuery.Esto permite usar parámetros nombrados en la cadena de consulta de SQL.context.Database.SqlQuery&lt;Post&gt;("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Método público ToString Devuelve una representación de cadena de la base de datos. (Invalida a Object.ToString()).
Método público UseTransaction Permite al usuario pasar una transacción de base de datos creada fuera del objeto Database si desea que Entity Framework ejecute comandos dentro de la transacción externa.O bien, pase NULL para borrar el conocimiento del marco de trabajo de esa transacción.

Superior

Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Vea también

Referencia

System.Data.Entity (Espacio de nombres)