Compartir a través de


Database Clase

Definición

Una instancia de esta clase se obtiene de un DbContext objeto 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 comprobación de la existencia de una base de datos se puede realizar mediante una conexión (es decir, sin un contexto completo) mediante los métodos estáticos de esta clase.

public class Database
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable", Justification="The DbContextTransaction and EntityTransaction should never be disposed by this class")]
public class Database
type Database = class
Public Class Database
Herencia
Database
Atributos

Propiedades

CommandTimeout

Obtiene o establece el valor de tiempo de espera, en segundos, para todas las operaciones de contexto. El valor predeterminado es null, donde null indica que se usará el valor predeterminado del proveedor subyacente.

Connection

Devuelve la conexión que está siendo utilizada por este contexto. Esto puede hacer que la conexión se cree si aún no existe.

CurrentTransaction

Obtiene la transacción en la que está incluida la conexión del almacén subyacente. Su valor puede ser null.

DefaultConnectionFactory
Obsoletos.

Generador de conexiones que se va a usar al crear un DbConnection objeto a partir de solo un nombre de base de datos o una cadena de conexión.

Log

Establezca esta propiedad para registrar el CÓDIGO SQL generado por en DbContext el delegado especificado. Por ejemplo, para iniciar sesión en la consola, establezca esta propiedad en Write(String).

Métodos

BeginTransaction()

Inicia una transacción en la conexión del almacén subyacente.

BeginTransaction(IsolationLevel)

Inicia una transacción en la conexión del almacén subyacente mediante el nivel de aislamiento especificado.

CompatibleWithModel(Boolean)

Comprueba si la base de datos es compatible o no con el modelo de Code First actual.

Create()

Crea una nueva base de datos en el servidor de bases de datos para el modelo definido en el contexto de respaldo. Observe que la llamada a este método antes de que se ejecute la estrategia de inicialización de base de datos deshabilitará la ejecución de esa estrategia.

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.

Delete()

Elimina la base de datos en el servidor de bases de datos si existe; de lo contrario, no hace nada. Al llamar a este método desde fuera de un inicializador, la base de datos marcará que no se ha inicializado. Esto significa que si se intenta volver a usar la base de datos después de eliminarla, cualquier conjunto de inicializadores se volverá a ejecutar y, normalmente, intentará crear la base de datos de nuevo automáticamente.

Delete(DbConnection)

Elimina la base de datos en el servidor de bases de datos si existe; de lo contrario, no hace nada.

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 a la base de datos se crea con el nombre de la base de datos o la cadena de conexión especificados de la misma manera que se describe en la documentación de la DbContext clase .

Equals(Object)

Una instancia de esta clase se obtiene de un DbContext objeto 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 comprobación de la existencia de una base de datos se puede realizar mediante una conexión (es decir, sin un contexto completo) mediante los métodos estáticos de esta clase.

ExecuteSqlCommand(String, Object[])

Ejecuta el comando de DDL/DML determinado en la base de datos.

Al igual que con cualquier API que acepte SQL, es importante parametrizar cualquier entrada de usuario para protegerse frente a un ataque por inyección de CÓDIGO SQL. Puede incluir marcadores de posición de parámetros en la cadena de consulta SQL y, a continuación, proporcionar valores de parámetro como argumentos adicionales. Los valores de parámetro que proporcione se convertirán automáticamente en un DbParameter. Contexto. Database.ExecuteSqlCommand("UPDATE dbo. Publicaciones SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Como alternativa, también puede construir un DbParameter y proporcionarlo a SqlQuery. Esto le permite usar parámetros con nombre en la cadena de consulta SQL. Contexto. Database.ExecuteSqlCommand("UPDATE dbo. Publicaciones SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommand(TransactionalBehavior, String, Object[])

Ejecuta el comando de DDL/DML determinado en la base de datos.

Al igual que con cualquier API que acepte SQL, es importante parametrizar cualquier entrada de usuario para protegerse frente a un ataque por inyección de CÓDIGO SQL. Puede incluir marcadores de posición de parámetros en la cadena de consulta SQL y, a continuación, proporcionar valores de parámetro como argumentos adicionales. Los valores de parámetro que proporcione se convertirán automáticamente en un DbParameter. Contexto. Database.ExecuteSqlCommand("UPDATE dbo. Publicaciones SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Como alternativa, también puede construir un DbParameter y proporcionarlo a SqlQuery. Esto le permite usar parámetros con nombre en la cadena de consulta SQL. Contexto. Database.ExecuteSqlCommand("UPDATE dbo. Publicaciones SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(String, CancellationToken, Object[])

Ejecuta de forma asincrónica el comando DDL/DML especificado en la base de datos.

Al igual que con cualquier API que acepte SQL, es importante parametrizar cualquier entrada de usuario para protegerse frente a un ataque por inyección de CÓDIGO SQL. Puede incluir marcadores de posición de parámetros en la cadena de consulta SQL y, a continuación, proporcionar valores de parámetro como argumentos adicionales. Los valores de parámetro que proporcione se convertirán automáticamente en un DbParameter. Contexto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Publicaciones SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Como alternativa, también puede construir un DbParameter y proporcionarlo a SqlQuery. Esto le permite usar parámetros con nombre en la cadena de consulta SQL. Contexto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Publicaciones SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(String, Object[])

Ejecuta de forma asincrónica el comando DDL/DML especificado en la base de datos.

Al igual que con cualquier API que acepte SQL, es importante parametrizar cualquier entrada de usuario para protegerse frente a un ataque por inyección de CÓDIGO SQL. Puede incluir marcadores de posición de parámetros en la cadena de consulta SQL y, a continuación, proporcionar valores de parámetro como argumentos adicionales. Los valores de parámetro que proporcione se convertirán automáticamente en un DbParameter. Contexto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Publicaciones SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Como alternativa, también puede construir un DbParameter y proporcionarlo a SqlQuery. Esto le permite usar parámetros con nombre en la cadena de consulta SQL. Contexto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Publicaciones SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(TransactionalBehavior, String, CancellationToken, Object[])

Ejecuta de forma asincrónica el comando DDL/DML especificado en la base de datos.

Al igual que con cualquier API que acepte SQL, es importante parametrizar cualquier entrada de usuario para protegerse frente a un ataque por inyección de CÓDIGO SQL. Puede incluir marcadores de posición de parámetros en la cadena de consulta SQL y, a continuación, proporcionar valores de parámetro como argumentos adicionales. Los valores de parámetro que proporcione se convertirán automáticamente en un DbParameter. Contexto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Publicaciones SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Como alternativa, también puede construir un DbParameter y proporcionarlo a SqlQuery. Esto le permite usar parámetros con nombre en la cadena de consulta SQL. Contexto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Publicaciones SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(TransactionalBehavior, String, Object[])

Ejecuta de forma asincrónica el comando DDL/DML especificado en la base de datos.

Al igual que con cualquier API que acepte SQL, es importante parametrizar cualquier entrada de usuario para protegerse frente a un ataque por inyección de CÓDIGO SQL. Puede incluir marcadores de posición de parámetros en la cadena de consulta SQL y, a continuación, proporcionar valores de parámetro como argumentos adicionales. Los valores de parámetro que proporcione se convertirán automáticamente en un DbParameter. Contexto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Publicaciones SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Como alternativa, también puede construir un DbParameter y proporcionarlo a SqlQuery. Esto le permite usar parámetros con nombre en la cadena de consulta SQL. Contexto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Publicaciones SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

Exists()

Comprueba si la base de datos existe o no en el servidor.

Exists(DbConnection)

Comprueba si la base de datos existe o no en el servidor.

Exists(String)

Comprueba si la base de datos existe o no en el servidor. La conexión a la base de datos se crea con el nombre de la base de datos o la cadena de conexión especificados de la misma manera que se describe en la documentación de la DbContext clase .

GetHashCode()

Una instancia de esta clase se obtiene de un DbContext objeto 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 comprobación de la existencia de una base de datos se puede realizar mediante una conexión (es decir, sin un contexto completo) mediante los métodos estáticos de esta clase.

GetType()

Obtiene el Type de la instancia actual.

Initialize(Boolean)

Ejecuta el objeto registrado IDatabaseInitializer<TContext> en este contexto. Si "force" se establece en true, el inicializador se ejecuta independientemente de si se ha ejecutado o no antes. 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 ejecuta si aún no se ha ejecutado para este contexto, modelo y conexión en este dominio de aplicación. Este método se usa normalmente cuando es necesario asegurarse de que la base de datos se ha creado y propagado antes de iniciar alguna operación en la que hacerlo de forma diferida provocará problemas, como cuando la operación forma parte de una transacción.

SetInitializer<TContext>(IDatabaseInitializer<TContext>)

Establece el inicializador de base de datos que se va a usar para el tipo de contexto especificado. Se llama al inicializador de base de datos cuando se usa un tipo determinado DbContext para acceder a una base de datos por primera vez. La estrategia predeterminada para los contextos de Code First es una instancia de CreateDatabaseIfNotExists<TContext>.

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 que 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. Use el SqlQuery(String, Object[]) método para devolver entidades a las que realiza el seguimiento el contexto.

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 que 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. Use el SqlQuery(String, Object[]) método para devolver entidades a las que realiza el seguimiento el contexto.

ToString()

Una instancia de esta clase se obtiene de un DbContext objeto 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 comprobación de la existencia de una base de datos se puede realizar mediante una conexión (es decir, sin un contexto completo) mediante los métodos estáticos de esta clase.

UseTransaction(DbTransaction)

Permite al usuario pasar una transacción de base de datos creada fuera del Database objeto si desea que Entity Framework ejecute comandos dentro de esa transacción externa. Como alternativa, pase null para borrar el conocimiento del marco de esa transacción.

Se aplica a