일반 엔터티 프레임 워크에서 dbContext.Database.Exists()을 사용하여 데이터베이스 연결을 확인할 수 있지만 Entity Framework Core에는 없습니다. Entity Framework Core에서 dbContext.Database.Exists()의 대안은 무엇입니까?Entity Framework Core에서 데이터베이스 연결을 확인하는 방법은 무엇입니까?
답변
DatabaseFacade
클래스 (이 유형은 DbContext.Database
속성 임)는 현재 Exists
메서드를 공개하지 않습니다 (현재까지 최신 EF Core 2.0까지).
그러나 해당 EF6 방법에 해당하는 것은 EF 코어 IRelationalDatabaseCreator
서비스에서 제공합니다. 내부적 때 사용 (
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage;
public static class DatabaseFacadeExtensions
{
public static bool Exists(this DatabaseFacade source)
{
return source.GetService<IRelationalDatabaseCreator>().Exists();
}
}
그러나 데이터베이스가 생성 될 필요가있는 경우 Exists
방법은 데이터베이스 연결을 확인하도록 적이 있습니다 만이 아닌 확인하십시오 :이 같은 사용자 정의 확장 메서드로 노출 될 수 있습니다 EnsureCreated
, Migrate
등의 메소드를 호출합니다.
에서 상태 속성을 확인할 수 있습니다. 데이터베이스 상태를 테스트하는 좋은 방법은 무엇이라고 생각하십니까? 로드 밸런서 상태 점검에 구현하려고합니다. – ArcadeRenegade
어떨까요 : await _context.Database.ExecuteSqlCommandAsync ("SELECT 1"); – ArcadeRenegade
@ArcadeRenegade 정확하게 말할 수는 없습니다. 나는 (또 다른) 커스텀 (확장) 메소드를 생성하고 구현과 함께 플레이 할 것이다. 나는'OpenConnection' /'CloseConnection' 호출 쌍과 비슷한 것을 상상한다. –
연결 상태를 확인 하시겠습니까? –
연결 문자열의 유효성을 검사하고 데이터베이스에 성공적으로 연결할 수 있는지 확인하고 싶습니다. –
연결 인스턴스 –