Condividi tramite


RelationalDatabaseCreator Classe

Definizione

Esegue la creazione di database/schema e altre operazioni correlate.

Questo tipo viene in genere usato dai provider di database (e da altre estensioni). In genere non viene usato nel codice dell'applicazione.

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
Ereditarietà
RelationalDatabaseCreator
Implementazioni
IDatabaseCreator IRelationalDatabaseCreator Microsoft.EntityFrameworkCore.Internal.IServiceInjectionSite IDatabaseCreatorWithCanConnect

Commenti

La durata del servizio è Scoped. Ciò significa che ogni DbContext istanza userà la propria istanza di questo servizio. L'implementazione può dipendere da altri servizi registrati per qualsiasi durata. L'implementazione non deve essere thread-safe.

Per altre informazioni ed esempi, vedere Implementazione di provider di database ed estensioni .

Costruttori

RelationalDatabaseCreator(IModel, IRelationalConnection, IMigrationsModelDiffer, IMigrationsSqlGenerator, IMigrationCommandExecutor)
Obsoleti.

Inizializza una nuova istanza della classe RelationalDatabaseCreator.

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

Inizializza una nuova istanza della classe RelationalDatabaseCreator.

RelationalDatabaseCreator(RelationalDatabaseCreatorDependencies)

Inizializza una nuova istanza della classe RelationalDatabaseCreator.

Proprietà

Connection

Ottiene la connessione per il database.

Dependencies

Dipendenze specifiche del provider relazionale per questo servizio.

ExecutionStrategyFactory

Ottiene l'oggetto IExecutionStrategyFactory da utilizzare.

MigrationCommandExecutor

Ottiene l'oggetto IMigrationCommandExecutor da utilizzare.

Model

Ottiene il modello per il contesto in cui viene utilizzato l'autore.

Metodi

CanConnect()

Determina se il database è disponibile o meno e può essere connesso a .

CanConnectAsync(CancellationToken)

Determina se il database è disponibile o meno e può essere connesso a .

Create()

Crea il database fisico. Non tenta di popolarlo con uno schema.

CreateAsync(CancellationToken)

Crea in modo asincrono il database fisico. Non tenta di popolarlo con uno schema.

CreateTables()

Crea tutte le tabelle per il modello corrente nel database. Non viene effettuato alcun tentativo di aggiornare in modo incrementale lo schema. Si presuppone che nessuna delle tabelle esista nel database.

CreateTablesAsync(CancellationToken)

Crea in modo asincrono tutte le tabelle per il modello corrente nel database. Non viene effettuato alcun tentativo di aggiornare in modo incrementale lo schema. Si presuppone che nessuna delle tabelle esista nel database.

Delete()

Elimina il database fisico.

DeleteAsync(CancellationToken)

Elimina in modo asincrono il database fisico.

EnsureCreated()

Assicura che il database per il contesto esista. Se esiste, non viene eseguita alcuna azione. Se non esiste, il database e tutti i relativi schemi vengono creati. Se il database esiste, non viene eseguito alcun tentativo per assicurarsi che sia compatibile con il modello per questo contesto.

EnsureCreatedAsync(CancellationToken)

Garantisce in modo asincrono che il database per il contesto esista. Se esiste, non viene eseguita alcuna azione. Se non esiste, il database e tutti i relativi schemi vengono creati. Se il database esiste, non viene eseguito alcun tentativo per assicurarsi che sia compatibile con il modello per questo contesto.

EnsureDeleted()

Assicura che il database per il contesto non esista. Se non esiste, non viene eseguita alcuna azione. Se esiste, il database viene eliminato.

Avviso: l'intero database viene eliminato e non viene richiesto di rimuovere solo gli oggetti di database usati dal modello per questo contesto.

EnsureDeletedAsync(CancellationToken)

Garantisce in modo asincrono che il database per il contesto non esista. Se non esiste, non viene eseguita alcuna azione. Se esiste, il database viene eliminato.

Avviso: l'intero database viene eliminato e non viene richiesto di rimuovere solo gli oggetti di database usati dal modello per questo contesto.

Exists()

Determina se il database fisico esiste. Non viene effettuato alcun tentativo di determinare se il database contiene lo schema per il modello corrente.

ExistsAsync(CancellationToken)

Determina in modo asincrono se il database fisico esiste. Non viene effettuato alcun tentativo di determinare se il database contiene lo schema per il modello corrente.

GenerateCreateScript()

Genera uno script per creare tutte le tabelle per il modello corrente.

GetCreateTablesCommands()

Ottiene i comandi che creeranno tutte le tabelle dal modello.

GetCreateTablesCommands(MigrationsSqlGenerationOptions)

Ottiene i comandi che creeranno tutte le tabelle dal modello.

HasTables()

Determina se il database contiene tabelle. Non viene effettuato alcun tentativo di determinare se le tabelle appartengono al modello corrente o meno.

HasTablesAsync(CancellationToken)

Determina in modo asincrono se il database contiene tabelle. Non viene effettuato alcun tentativo di determinare se le tabelle appartengono al modello corrente o meno.

Implementazioni dell'interfaccia esplicita

IServiceInjectionSite.InjectServices(IServiceProvider)

Questa API supporta l'infrastruttura Entity Framework Core e non deve essere usata direttamente dal codice. Questa API può cambiare o essere rimossa nelle versioni future.

Si applica a