Udostępnij za pośrednictwem


RelationalDatabaseCreator Klasa

Definicja

Wykonuje tworzenie bazy danych/schematu i inne powiązane operacje.

Ten typ jest zwykle używany przez dostawców baz danych (i innych rozszerzeń). Zwykle nie jest używany w kodzie aplikacji.

public abstract class RelationalDatabaseCreator : Microsoft.EntityFrameworkCore.Storage.IDatabaseCreator, Microsoft.EntityFrameworkCore.Storage.IRelationalDatabaseCreator
public abstract class RelationalDatabaseCreator : Microsoft.EntityFrameworkCore.Internal.IServiceInjectionSite, Microsoft.EntityFrameworkCore.Storage.IDatabaseCreator, Microsoft.EntityFrameworkCore.Storage.IRelationalDatabaseCreator
public abstract class RelationalDatabaseCreator : Microsoft.EntityFrameworkCore.Storage.IDatabaseCreatorWithCanConnect, Microsoft.EntityFrameworkCore.Storage.IRelationalDatabaseCreator
type RelationalDatabaseCreator = class
    interface IRelationalDatabaseCreator
    interface IDatabaseCreator
type RelationalDatabaseCreator = class
    interface IRelationalDatabaseCreator
    interface IDatabaseCreator
    interface IServiceInjectionSite
type RelationalDatabaseCreator = class
    interface IRelationalDatabaseCreator
    interface IDatabaseCreator
    interface IDatabaseCreatorWithCanConnect
Public MustInherit Class RelationalDatabaseCreator
Implements IDatabaseCreator, IRelationalDatabaseCreator
Public MustInherit Class RelationalDatabaseCreator
Implements IDatabaseCreator, IRelationalDatabaseCreator, IServiceInjectionSite
Public MustInherit Class RelationalDatabaseCreator
Implements IDatabaseCreatorWithCanConnect, IRelationalDatabaseCreator
Dziedziczenie
RelationalDatabaseCreator
Implementuje
IDatabaseCreator IRelationalDatabaseCreator Microsoft.EntityFrameworkCore.Internal.IServiceInjectionSite IDatabaseCreatorWithCanConnect

Uwagi

Okres istnienia usługi to Scoped. Oznacza to, że każde DbContext wystąpienie będzie używać własnego wystąpienia tej usługi. Implementacja może zależeć od innych usług zarejestrowanych w dowolnym okresie istnienia. Implementacja nie musi być bezpieczna wątkowo.

Aby uzyskać więcej informacji i przykłady , zobacz Implementacja dostawców i rozszerzeń bazy danych .

Konstruktory

RelationalDatabaseCreator(IModel, IRelationalConnection, IMigrationsModelDiffer, IMigrationsSqlGenerator, IMigrationCommandExecutor, IExecutionStrategyFactory)

Inicjuje nowe wystąpienie klasy RelationalDatabaseCreator.

RelationalDatabaseCreator(IModel, IRelationalConnection, IMigrationsModelDiffer, IMigrationsSqlGenerator, IMigrationCommandExecutor)
Przestarzałe.

Inicjuje nowe wystąpienie klasy RelationalDatabaseCreator.

RelationalDatabaseCreator(RelationalDatabaseCreatorDependencies)

Inicjuje nowe wystąpienie klasy RelationalDatabaseCreator.

Właściwości

Connection

Pobiera połączenie dla bazy danych.

Dependencies

Zależności specyficzne dla dostawcy relacyjnego dla tej usługi.

ExecutionStrategyFactory

Pobiera element IExecutionStrategyFactory do użycia.

MigrationCommandExecutor

Pobiera element IMigrationCommandExecutor do użycia.

Model

Pobiera model dla kontekstu, z którego jest używany ten twórca.

Metody

CanConnect()

Określa, czy baza danych jest dostępna i z nią można nawiązać połączenie.

CanConnectAsync(CancellationToken)

Określa, czy baza danych jest dostępna i z nią można nawiązać połączenie.

Create()

Tworzy fizyczną bazę danych. Nie próbuje wypełnić go żadnym schematem.

CreateAsync(CancellationToken)

Asynchronicznie tworzy fizyczną bazę danych. Nie próbuje wypełnić go żadnym schematem.

CreateTables()

Tworzy wszystkie tabele dla bieżącego modelu w bazie danych. Nie podjęto próby przyrostowej aktualizacji schematu. Zakłada się, że żadna z tabel nie istnieje w bazie danych.

CreateTablesAsync(CancellationToken)

Asynchronicznie tworzy wszystkie tabele dla bieżącego modelu w bazie danych. Nie podjęto próby przyrostowej aktualizacji schematu. Zakłada się, że żadna z tabel nie istnieje w bazie danych.

Delete()

Usuwa fizyczną bazę danych.

DeleteAsync(CancellationToken)

Asynchronicznie usuwa fizyczną bazę danych.

EnsureCreated()

Gwarantuje, że baza danych dla kontekstu istnieje. Jeśli istnieje, nie zostanie podjęta żadna akcja. Jeśli nie istnieje, baza danych i cały jej schemat zostaną utworzone. Jeśli baza danych istnieje, nie zostanie podjęta żadna próba zapewnienia, że jest zgodna z modelem dla tego kontekstu.

EnsureCreatedAsync(CancellationToken)

Asynchronicznie zapewnia, że baza danych dla kontekstu istnieje. Jeśli istnieje, nie zostanie podjęta żadna akcja. Jeśli nie istnieje, baza danych i cały jej schemat zostaną utworzone. Jeśli baza danych istnieje, nie zostanie podjęta żadna próba zapewnienia, że jest zgodna z modelem dla tego kontekstu.

EnsureDeleted()

Zapewnia, że baza danych dla kontekstu nie istnieje. Jeśli nie istnieje, nie zostanie podjęta żadna akcja. Jeśli istnieje, baza danych zostanie usunięta.

Ostrzeżenie: Cała baza danych została usunięta i nie podjęto żadnych starań, aby usunąć tylko obiekty bazy danych, które są używane przez model dla tego kontekstu.

EnsureDeletedAsync(CancellationToken)

Asynchronicznie zapewnia, że baza danych dla kontekstu nie istnieje. Jeśli nie istnieje, nie zostanie podjęta żadna akcja. Jeśli istnieje, baza danych zostanie usunięta.

Ostrzeżenie: Cała baza danych została usunięta i nie podjęto żadnych starań, aby usunąć tylko obiekty bazy danych, które są używane przez model dla tego kontekstu.

Exists()

Określa, czy istnieje fizyczna baza danych. Nie podjęto próby ustalenia, czy baza danych zawiera schemat bieżącego modelu.

ExistsAsync(CancellationToken)

Asynchronicznie określa, czy fizyczna baza danych istnieje. Nie podjęto próby ustalenia, czy baza danych zawiera schemat bieżącego modelu.

GenerateCreateScript()

Generuje skrypt, aby utworzyć wszystkie tabele dla bieżącego modelu.

GetCreateTablesCommands()

Pobiera polecenia, które będą tworzyć wszystkie tabele na podstawie modelu.

GetCreateTablesCommands(MigrationsSqlGenerationOptions)

Pobiera polecenia, które będą tworzyć wszystkie tabele na podstawie modelu.

HasTables()

Określa, czy baza danych zawiera jakiekolwiek tabele. Nie podjęto próby określenia, czy tabele należą do bieżącego modelu, czy nie.

HasTablesAsync(CancellationToken)

Asynchronicznie określa, czy baza danych zawiera jakiekolwiek tabele. Nie podjęto próby określenia, czy tabele należą do bieżącego modelu, czy nie.

Jawne implementacje interfejsu

IServiceInjectionSite.InjectServices(IServiceProvider)

Ten interfejs API obsługuje infrastrukturę platformy Entity Framework Core i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu. Ten interfejs API może ulec zmianie lub zostać usunięty w przyszłych wersjach.

Dotyczy