다음을 통해 공유


Database 클래스

정의

이 클래스의 instance 개체에서 DbContext 가져오고 DbContext 또는 연결을 지원하는 실제 데이터베이스를 관리하는 데 사용할 수 있습니다. 여기에는 데이터베이스를 만들고 삭제하는 작업과 데이터베이스가 있는지 확인하는 작업이 포함됩니다. 이 클래스의 정적 메서드를 사용하여 연결(예: 전체 컨텍스트 없이)을 사용하여 데이터베이스의 존재 여부를 삭제하고 확인할 수 있습니다.

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
상속
Database
특성

속성

CommandTimeout

모든 컨텍스트 작업에 대한 시간 제한 값(초)을 가져오거나 설정합니다. 기본값은 null입니다. 여기서 null은 기본 공급자의 기본값이 사용됨을 나타냅니다.

Connection

이 컨텍스트에서 사용하는 연결을 반환합니다. 연결이 아직 없는 경우 생성될 수 있습니다.

CurrentTransaction

기본 저장소 연결이 인리스트먼트되는 트랜잭션을 가져옵니다. null일 수 있습니다.

DefaultConnectionFactory
사용되지 않음.

데이터베이스 이름 또는 연결 문자열에서 를 DbConnection 만들 때 사용할 연결 팩터리입니다.

Log

에서 생성된 SQL을 지정된 대리자로 DbContext 기록하도록 이 속성을 설정합니다. 예를 들어 콘솔에 로그하려면 이 속성을 Write(String)로 설정합니다.

메서드

BeginTransaction()

기본 저장소 연결에서 트랜잭션 시작

BeginTransaction(IsolationLevel)

지정된 격리 수준을 사용하여 기본 저장소 연결에서 트랜잭션을 시작합니다.

CompatibleWithModel(Boolean)

데이터베이스가 현재 Code First 모델과 호환되는지 여부를 확인합니다.

Create()

지원하는 컨텍스트에 정의된 모델에 대한 새 데이터베이스를 데이터베이스 서버에 만듭니다. 데이터베이스 초기화 전략이 실행되기 전에 이 메서드를 호출하면 해당 전략을 실행할 수 없습니다.

CreateIfNotExists()

동일한 이름의 데이터베이스가 서버에 없는 경우에만 지원하는 컨텍스트에 정의된 모델에 대한 새 데이터베이스를 데이터베이스 서버에 만듭니다.

Delete()

데이터베이스 서버에 데이터베이스가 있으면 데이터베이스를 삭제하고, 그렇지 않으면 아무 작업도 수행하지 않습니다. 이니셜라이저 외부에서 이 메서드를 호출하면 데이터베이스가 초기화되지 않은 것으로 표시됩니다. 즉, 데이터베이스가 삭제된 후 데이터베이스를 다시 사용하려고 하면 이니셜라이저 집합이 다시 실행되고 일반적으로 데이터베이스를 자동으로 다시 만들려고 시도합니다.

Delete(DbConnection)

데이터베이스 서버에 데이터베이스가 있으면 데이터베이스를 삭제하고, 그렇지 않으면 아무 작업도 수행하지 않습니다.

Delete(String)

데이터베이스 서버에 데이터베이스가 있으면 데이터베이스를 삭제하고, 그렇지 않으면 아무 작업도 수행하지 않습니다. 데이터베이스에 대한 연결은 클래스 설명서에 설명된 것과 동일한 방식으로 지정된 데이터베이스 이름 또는 연결 문자열을 DbContext 사용하여 만들어집니다.

Equals(Object)

이 클래스의 instance 개체에서 DbContext 가져오고 DbContext 또는 연결을 지원하는 실제 데이터베이스를 관리하는 데 사용할 수 있습니다. 여기에는 데이터베이스를 만들고 삭제하는 작업과 데이터베이스가 있는지 확인하는 작업이 포함됩니다. 이 클래스의 정적 메서드를 사용하여 연결(예: 전체 컨텍스트 없이)을 사용하여 데이터베이스의 존재 여부를 삭제하고 확인할 수 있습니다.

ExecuteSqlCommand(String, Object[])

데이터베이스에 대해 지정된 DDL/DML 명령을 실행합니다.

SQL을 허용하는 모든 API와 마찬가지로 SQL 삽입 공격으로부터 보호하기 위해 사용자 입력을 매개 변수화하는 것이 중요합니다. SQL 쿼리 문자열에 매개 변수 자리 표시자를 포함하고 매개 변수 값을 추가 인수로 제공할 수 있습니다. 제공하는 모든 매개 변수 값은 자동으로 DbParameter로 변환됩니다. 컨텍스트. Database.ExecuteSqlCommand("UPDATE dbo. 게시물 SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); 또는 DbParameter를 생성하고 SqlQuery에 제공할 수도 있습니다. 그러면 SQL 쿼리 문자열에 명명된 매개 변수를 사용할 수 있습니다. 컨텍스트. Database.ExecuteSqlCommand("UPDATE dbo. 게시물 SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommand(TransactionalBehavior, String, Object[])

데이터베이스에 대해 지정된 DDL/DML 명령을 실행합니다.

SQL을 허용하는 모든 API와 마찬가지로 SQL 삽입 공격으로부터 보호하기 위해 사용자 입력을 매개 변수화하는 것이 중요합니다. SQL 쿼리 문자열에 매개 변수 자리 표시자를 포함하고 매개 변수 값을 추가 인수로 제공할 수 있습니다. 제공하는 모든 매개 변수 값은 자동으로 DbParameter로 변환됩니다. 컨텍스트. Database.ExecuteSqlCommand("UPDATE dbo. 게시물 SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); 또는 DbParameter를 생성하고 SqlQuery에 제공할 수도 있습니다. 그러면 SQL 쿼리 문자열에 명명된 매개 변수를 사용할 수 있습니다. 컨텍스트. Database.ExecuteSqlCommand("UPDATE dbo. 게시물 SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(String, CancellationToken, Object[])

데이터베이스에 대해 지정된 DDL/DML 명령을 비동기적으로 실행합니다.

SQL을 허용하는 모든 API와 마찬가지로 SQL 삽입 공격으로부터 보호하기 위해 사용자 입력을 매개 변수화하는 것이 중요합니다. SQL 쿼리 문자열에 매개 변수 자리 표시자를 포함하고 매개 변수 값을 추가 인수로 제공할 수 있습니다. 제공하는 모든 매개 변수 값은 자동으로 DbParameter로 변환됩니다. 컨텍스트. Database.ExecuteSqlCommandAsync("UPDATE dbo. 게시물 SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); 또는 DbParameter를 생성하고 SqlQuery에 제공할 수도 있습니다. 그러면 SQL 쿼리 문자열에 명명된 매개 변수를 사용할 수 있습니다. 컨텍스트. Database.ExecuteSqlCommandAsync("UPDATE dbo. 게시물 SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(String, Object[])

데이터베이스에 대해 지정된 DDL/DML 명령을 비동기적으로 실행합니다.

SQL을 허용하는 모든 API와 마찬가지로 SQL 삽입 공격으로부터 보호하기 위해 사용자 입력을 매개 변수화하는 것이 중요합니다. SQL 쿼리 문자열에 매개 변수 자리 표시자를 포함하고 매개 변수 값을 추가 인수로 제공할 수 있습니다. 제공하는 모든 매개 변수 값은 자동으로 DbParameter로 변환됩니다. 컨텍스트. Database.ExecuteSqlCommandAsync("UPDATE dbo. 게시물 SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); 또는 DbParameter를 생성하고 SqlQuery에 제공할 수도 있습니다. 그러면 SQL 쿼리 문자열에 명명된 매개 변수를 사용할 수 있습니다. 컨텍스트. Database.ExecuteSqlCommandAsync("UPDATE dbo. 게시물 SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

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

데이터베이스에 대해 지정된 DDL/DML 명령을 비동기적으로 실행합니다.

SQL을 허용하는 모든 API와 마찬가지로 SQL 삽입 공격으로부터 보호하기 위해 사용자 입력을 매개 변수화하는 것이 중요합니다. SQL 쿼리 문자열에 매개 변수 자리 표시자를 포함하고 매개 변수 값을 추가 인수로 제공할 수 있습니다. 제공하는 모든 매개 변수 값은 자동으로 DbParameter로 변환됩니다. 컨텍스트. Database.ExecuteSqlCommandAsync("UPDATE dbo. 게시물 SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); 또는 DbParameter를 생성하고 SqlQuery에 제공할 수도 있습니다. 그러면 SQL 쿼리 문자열에 명명된 매개 변수를 사용할 수 있습니다. 컨텍스트. Database.ExecuteSqlCommandAsync("UPDATE dbo. 게시물 SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(TransactionalBehavior, String, Object[])

데이터베이스에 대해 지정된 DDL/DML 명령을 비동기적으로 실행합니다.

SQL을 허용하는 모든 API와 마찬가지로 SQL 삽입 공격으로부터 보호하기 위해 사용자 입력을 매개 변수화하는 것이 중요합니다. SQL 쿼리 문자열에 매개 변수 자리 표시자를 포함하고 매개 변수 값을 추가 인수로 제공할 수 있습니다. 제공하는 모든 매개 변수 값은 자동으로 DbParameter로 변환됩니다. 컨텍스트. Database.ExecuteSqlCommandAsync("UPDATE dbo. 게시물 SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); 또는 DbParameter를 생성하고 SqlQuery에 제공할 수도 있습니다. 그러면 SQL 쿼리 문자열에 명명된 매개 변수를 사용할 수 있습니다. 컨텍스트. Database.ExecuteSqlCommandAsync("UPDATE dbo. 게시물 SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

Exists()

데이터베이스가 서버에 있는지 여부를 확인합니다.

Exists(DbConnection)

데이터베이스가 서버에 있는지 여부를 확인합니다.

Exists(String)

데이터베이스가 서버에 있는지 여부를 확인합니다. 데이터베이스에 대한 연결은 클래스 설명서에 설명된 것과 동일한 방식으로 지정된 데이터베이스 이름 또는 연결 문자열을 DbContext 사용하여 만들어집니다.

GetHashCode()

이 클래스의 instance 개체에서 DbContext 가져오고 DbContext 또는 연결을 지원하는 실제 데이터베이스를 관리하는 데 사용할 수 있습니다. 여기에는 데이터베이스를 만들고 삭제하는 작업과 데이터베이스가 있는지 확인하는 작업이 포함됩니다. 이 클래스의 정적 메서드를 사용하여 연결(예: 전체 컨텍스트 없이)을 사용하여 데이터베이스의 존재 여부를 삭제하고 확인할 수 있습니다.

GetType()

현재 인스턴스의 Type을 가져옵니다.

Initialize(Boolean)

이 컨텍스트에서 등록된 를 IDatabaseInitializer<TContext> 실행합니다. "force"를 true로 설정하면 이전에 실행되었는지 여부에 관계없이 이니셜라이저가 실행됩니다. 이는 데이터베이스가 응용 프로그램이 실행되는 동안 삭제되고 다시 초기화되어야 하는 경우에 유용할 수 있습니다. "force"가 false로 설정된 경우 이 앱 도메인에서 이 컨텍스트, 모델 및 연결에 대해 아직 실행되지 않은 경우에만 이니셜라이저가 실행됩니다. 이 메서드는 일반적으로 데이터베이스가 생성되고 시드되었는지 확인해야 할 때 사용되며, 작업을 시작하기 전에 작업이 트랜잭션의 일부인 경우와 같이 지연으로 인해 문제가 발생합니다.

SetInitializer<TContext>(IDatabaseInitializer<TContext>)

지정된 컨텍스트 형식에 사용할 데이터베이스 이니셜라이저를 설정합니다. 데이터베이스 이니셜라이저는 지정된 DbContext 형식을 사용하여 데이터베이스에 처음으로 액세스할 때 호출됩니다. Code First 컨텍스트의 기본 전략은 의 instanceCreateDatabaseIfNotExists<TContext>.

SqlQuery(Type, String, Object[])

지정된 형식의 요소를 반환할 원시 SQL 쿼리를 만듭니다. 이 형식은 쿼리에서 반환된 열의 이름과 일치하는 속성이 있는 형식이거나 단순한 기본 형식일 수 있습니다. 형식이 엔터티 형식일 필요는 없습니다. 이 쿼리의 결과는 반환된 개체의 형식이 엔터티 형식인 경우에도 컨텍스트에서 추적되지 않습니다. 메서드를 SqlQuery(String, Object[]) 사용하여 컨텍스트에서 추적하는 엔터티를 반환합니다.

SqlQuery<TElement>(String, Object[])

지정된 제네릭 형식의 요소를 반환할 원시 SQL 쿼리를 만듭니다. 이 형식은 쿼리에서 반환된 열의 이름과 일치하는 속성이 있는 형식이거나 단순한 기본 형식일 수 있습니다. 형식이 엔터티 형식일 필요는 없습니다. 이 쿼리의 결과는 반환된 개체의 형식이 엔터티 형식인 경우에도 컨텍스트에서 추적되지 않습니다. 메서드를 SqlQuery(String, Object[]) 사용하여 컨텍스트에서 추적하는 엔터티를 반환합니다.

ToString()

이 클래스의 instance 개체에서 DbContext 가져오고 DbContext 또는 연결을 지원하는 실제 데이터베이스를 관리하는 데 사용할 수 있습니다. 여기에는 데이터베이스를 만들고 삭제하는 작업과 데이터베이스가 있는지 확인하는 작업이 포함됩니다. 이 클래스의 정적 메서드를 사용하여 연결(예: 전체 컨텍스트 없이)을 사용하여 데이터베이스의 존재 여부를 삭제하고 확인할 수 있습니다.

UseTransaction(DbTransaction)

Entity Framework가 해당 외부 트랜잭션 내에서 명령을 실행하도록 하려면 사용자가 개체 외부에서 Database 만든 데이터베이스 트랜잭션을 전달할 수 있습니다. 또는 null을 전달하여 해당 트랜잭션에 대한 프레임워크의 지식을 지웁다.

적용 대상