ModelBuilder Classe

Definizione

Fornisce una superficie API semplice per la configurazione di un IMutableModel oggetto che definisce la forma delle entità, le relazioni tra di esse e la modalità di mapping al database.

public class ModelBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalModelBuilder>
public class ModelBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionModelBuilder>
type ModelBuilder = class
    interface IInfrastructure<InternalModelBuilder>
type ModelBuilder = class
    interface IInfrastructure<IConventionModelBuilder>
Public Class ModelBuilder
Implements IInfrastructure(Of InternalModelBuilder)
Public Class ModelBuilder
Implements IInfrastructure(Of IConventionModelBuilder)
Ereditarietà
ModelBuilder
Implementazioni
IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalModelBuilder> IInfrastructure<IConventionModelBuilder>

Commenti

È possibile usare ModelBuilder per costruire un modello per un contesto eseguendo l'override OnModelCreating(ModelBuilder) nel contesto derivato. In alternativa, è possibile creare il modello esternamente e impostarlo in un'istanza DbContextOptions passata al costruttore di contesto.

Per altre informazioni ed esempi, vedere Modellazione di tipi di entità e relazioni in EF Core .

Costruttori

ModelBuilder()

Inizializza una nuova istanza della ModelBuilder classe senza convenzioni.

Avviso: sono necessarie convenzioni per compilare un modello corretto.

ModelBuilder(ConventionSet)

Inizializza una nuova istanza della ModelBuilder classe che applicherà un set di convenzioni.

ModelBuilder(ConventionSet, ModelDependencies)

Inizializza una nuova istanza della ModelBuilder classe che applicherà un set di convenzioni.

ModelBuilder(ConventionSet, ModelDependencies, ModelConfiguration)

Si tratta di un'API interna che supporta l'infrastruttura Entity Framework Core e non è soggetta agli stessi standard di compatibilità delle API pubbliche. Può essere modificato o rimosso senza preavviso in alcuna versione. È consigliabile usarlo direttamente nel codice con estrema cautela e sapere che questa operazione può causare errori dell'applicazione durante l'aggiornamento a una nuova versione di Entity Framework Core.

ModelBuilder(IMutableModel)
Obsoleti.

Si tratta di un'API interna che supporta l'infrastruttura Entity Framework Core e non è soggetta agli stessi standard di compatibilità delle API pubbliche. Può essere modificato o rimosso senza preavviso in alcuna versione. È consigliabile usarlo direttamente nel codice con estrema cautela e sapere che questa operazione può causare errori dell'applicazione durante l'aggiornamento a una nuova versione di Entity Framework Core.

Proprietà

Model

Modello configurato.

Metodi

ApplyConfiguration<TEntity>(IEntityTypeConfiguration<TEntity>)

Applica la configurazione definita in un'istanza IEntityTypeConfiguration<TEntity> di .

ApplyConfiguration<TQuery>(IQueryTypeConfiguration<TQuery>)
Obsoleti.

Applica la configurazione definita in un'istanza IQueryTypeConfiguration<TQuery> di .

ApplyConfigurationsFromAssembly(Assembly, Func<Type,Boolean>)

Applica la configurazione da tutte le IEntityTypeConfiguration<TEntity> istanze definite nell'assembly fornito.

Entity(String)

Restituisce un oggetto che può essere utilizzato per configurare un tipo di entità specificato nel modello. Se un tipo di entità con il nome specificato non fa già parte del modello, al modello verrà aggiunto un nuovo tipo di entità che non dispone di un tipo CLR corrispondente.

Entity(String, Action<EntityTypeBuilder>)

Esegue la configurazione di un determinato tipo di entità nel modello. Se un tipo di entità con il nome specificato non fa già parte del modello, al modello verrà aggiunto un nuovo tipo di entità che non dispone di un tipo CLR corrispondente.

Entity(Type)

Restituisce un oggetto che può essere utilizzato per configurare un tipo di entità specificato nel modello. Se il tipo di entità non fa già parte del modello, verrà aggiunto al modello.

Entity(Type, Action<EntityTypeBuilder>)

Esegue la configurazione di un determinato tipo di entità nel modello. Se il tipo di entità non fa già parte del modello, verrà aggiunto al modello.

Entity<TEntity>()

Restituisce un oggetto che può essere utilizzato per configurare un tipo di entità specificato nel modello. Se il tipo di entità non fa già parte del modello, verrà aggiunto al modello.

Entity<TEntity>(Action<EntityTypeBuilder<TEntity>>)

Esegue la configurazione di un determinato tipo di entità nel modello. Se il tipo di entità non fa già parte del modello, verrà aggiunto al modello.

FinalizeModel()

Forza la post-elaborazione sul modello in modo che sia pronta per l'uso da parte del runtime. Questa post-elaborazione viene eseguita automaticamente quando si usa OnModelCreating(ModelBuilder). Questo metodo consente di essere eseguito in modo esplicito nei casi in cui l'esecuzione automatica non è possibile.

HasAnnotation(String, Object)

Aggiunge o aggiorna un'annotazione nel modello. Se esiste già un'annotazione con la chiave specificata in annotation , verrà aggiornato il relativo valore.

HasChangeTrackingStrategy(ChangeTrackingStrategy)

Configura l'impostazione predefinita ChangeTrackingStrategy da usare per questo modello. Questa strategia indica come il contesto rileva le modifiche alle proprietà per un'istanza di un tipo di entità.

HasChangeTrackingStrategy(ChangeTrackingStrategy)

Configura l'impostazione predefinita ChangeTrackingStrategy da usare per questo modello. Questa strategia indica come il contesto rileva le modifiche alle proprietà per un'istanza di un tipo di entità.

Ignore(String)

Esclude un tipo di entità con il nome specificato dal modello. Questo metodo viene in genere usato per rimuovere i tipi dal modello aggiunto per convenzione.

Ignore(Type)

Esclude un tipo di entità con il tipo CLR specificato dal modello. Questo metodo viene in genere usato per rimuovere i tipi dal modello aggiunto per convenzione.

Ignore<TEntity>()

Esclude il tipo di entità specificato dal modello. Questo metodo viene in genere usato per rimuovere i tipi dal modello aggiunto per convenzione.

Owned(Type)

Contrassegna un tipo di entità come di proprietà. Tutti i riferimenti a questo tipo verranno configurati come istanze di tipo di proprietà separate.

Owned<T>()

Contrassegna un tipo di entità come di proprietà. Tutti i riferimenti a questo tipo verranno configurati come istanze di tipo di proprietà separate.

Query(Type)
Obsoleti.

Restituisce un oggetto che può essere utilizzato per configurare un tipo di query specificato nel modello. Se il tipo di query non fa già parte del modello, verrà aggiunto al modello.

Query(Type, Action<EntityTypeBuilder>)
Obsoleti.

Esegue la configurazione di un determinato tipo di query nel modello. Se il tipo di query non fa già parte del modello, verrà aggiunto al modello.

Questo overload consente di eseguire la configurazione del tipo di query in linea nella chiamata al metodo anziché essere concatenati dopo una chiamata a Query<TQuery>(). In questo modo è possibile concatenare una configurazione aggiuntiva a livello di modello dopo la configurazione per il tipo di query.

Query(Type, Action<QueryTypeBuilder>)

Esegue la configurazione di un determinato tipo di query nel modello. Se il tipo di query non fa già parte del modello, verrà aggiunto al modello.

Questo overload consente di eseguire la configurazione del tipo di query in linea nella chiamata al metodo anziché essere concatenati dopo una chiamata a Query<TQuery>(). In questo modo è possibile concatenare una configurazione aggiuntiva a livello di modello dopo la configurazione per il tipo di query.

Query<TQuery>()
Obsoleti.

Restituisce un oggetto che può essere utilizzato per configurare un tipo di query specificato nel modello. Se il tipo di query non fa già parte del modello, verrà aggiunto al modello.

Query<TQuery>(Action<QueryTypeBuilder<TQuery>>)
Obsoleti.

Esegue la configurazione di un determinato tipo di query nel modello. Se il tipo di query non fa già parte del modello, verrà aggiunto al modello.

Questo overload consente di eseguire la configurazione del tipo di query in linea nella chiamata al metodo anziché essere concatenati dopo una chiamata a Query<TQuery>(). In questo modo è possibile concatenare una configurazione aggiuntiva a livello di modello dopo la configurazione per il tipo di query.

SharedTypeEntity(String, Type)

Restituisce un oggetto che può essere utilizzato per configurare un tipo di entità di tipo condiviso specificato nel modello.

SharedTypeEntity(String, Type, Action<EntityTypeBuilder>)

Restituisce un oggetto che può essere utilizzato per configurare un tipo di entità di tipo condiviso specificato nel modello.

SharedTypeEntity<TEntity>(String)

Restituisce un oggetto che può essere utilizzato per configurare un tipo di entità di tipo condiviso specificato nel modello.

SharedTypeEntity<TEntity>(String, Action<EntityTypeBuilder<TEntity>>)

Restituisce un oggetto che può essere utilizzato per configurare un tipo di entità di tipo condiviso specificato nel modello.

UsePropertyAccessMode(PropertyAccessMode)

Imposta l'oggetto PropertyAccessMode da utilizzare per tutte le proprietà di questo tipo di entità.

Per impostazione predefinita, il campo sottostante, se trovato per convenzione o specificato, viene usato quando vengono costruiti nuovi oggetti, in genere quando vengono eseguite query sulle entità dal database. Le proprietà vengono usate per tutti gli altri accessi. La chiamata a questo metodo modifica tale comportamento per tutte le proprietà nel modello, come descritto nell'enumerazione PropertyAccessMode .

UsePropertyAccessMode(PropertyAccessMode)

Imposta l'oggetto PropertyAccessMode da utilizzare per tutte le proprietà di questo tipo di entità.

Implementazioni dell'interfaccia esplicita

IInfrastructure<IConventionModelBuilder>.Instance

Oggetto interno ModelBuilder utilizzato per configurare questo modello.

IInfrastructure<InternalModelBuilder>.Instance

Oggetto interno ModelBuilder utilizzato per configurare questo modello.

Questa proprietà è destinata all'uso da parte dei metodi di estensione per configurare il modello. Non è progettato per essere usato nel codice dell'applicazione.

Metodi di estensione

HasAutoscaleThroughput(ModelBuilder, Nullable<Int32>)

Configura l'offerta di velocità effettiva con provisioning con scalabilità automatica.

HasDefaultContainer(ModelBuilder, String)

Configura il nome del contenitore predefinito che verrà usato se nessun nome è configurato in modo esplicito per un tipo di entità.

HasManualThroughput(ModelBuilder, Nullable<Int32>)

Configura l'offerta di velocità effettiva con provisioning manuale.

GetInfrastructure<T>(IInfrastructure<T>)

Ottiene il valore da una proprietà nascosta tramite IInfrastructure<T>.

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

HasDbFunction(ModelBuilder, MethodInfo)

Configura una funzione di database quando è destinata a un database relazionale.

HasDbFunction(ModelBuilder, MethodInfo, Action<DbFunctionBuilder>)

Configura una funzione di database quando è destinata a un database relazionale.

HasDbFunction<TResult>(ModelBuilder, Expression<Func<TResult>>)

Configura una funzione di database quando è destinata a un database relazionale.

HasDefaultSchema(ModelBuilder, String)

Configura lo schema predefinito in cui devono essere creati gli oggetti di database, se non è configurato in modo esplicito alcuno schema.

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

Configura una sequenza di database quando la destinazione è un database relazionale.

HasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

Configura una sequenza di database quando la destinazione è un database relazionale.

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

Configura una sequenza di database quando la destinazione è un database relazionale.

HasSequence(ModelBuilder, String, String)

Configura una sequenza di database quando la destinazione è un database relazionale.

HasSequence(ModelBuilder, String, String, Action<SequenceBuilder>)

Configura una sequenza di database quando la destinazione è un database relazionale.

HasSequence(ModelBuilder, String, String, Action<RelationalSequenceBuilder>)

Configura una sequenza di database quando la destinazione è un database relazionale.

HasSequence(ModelBuilder, String, String, Action<SequenceBuilder>)

Configura una sequenza di database quando la destinazione è un database relazionale.

HasSequence(ModelBuilder, Type, String, Action<SequenceBuilder>)

Configura una sequenza di database quando la destinazione è un database relazionale.

HasSequence(ModelBuilder, Type, String, Action<RelationalSequenceBuilder>)

Configura una sequenza di database quando la destinazione è un database relazionale.

HasSequence(ModelBuilder, Type, String, Action<SequenceBuilder>)

Configura una sequenza di database quando la destinazione è un database relazionale.

HasSequence(ModelBuilder, Type, String, String)

Configura una sequenza di database quando la destinazione è un database relazionale.

HasSequence(ModelBuilder, Type, String, String, Action<SequenceBuilder>)

Configura una sequenza di database quando la destinazione è un database relazionale.

HasSequence(ModelBuilder, Type, String, String, Action<RelationalSequenceBuilder>)

Configura una sequenza di database quando la destinazione è un database relazionale.

HasSequence(ModelBuilder, Type, String, String, Action<SequenceBuilder>)

Configura una sequenza di database quando la destinazione è un database relazionale.

HasSequence<T>(ModelBuilder, String, Action<SequenceBuilder>)

Configura una sequenza di database quando la destinazione è un database relazionale.

HasSequence<T>(ModelBuilder, String, Action<RelationalSequenceBuilder>)

Configura una sequenza di database quando la destinazione è un database relazionale.

HasSequence<T>(ModelBuilder, String, Action<SequenceBuilder>)

Configura una sequenza di database quando la destinazione è un database relazionale.

HasSequence<T>(ModelBuilder, String, String)

Configura una sequenza di database quando la destinazione è un database relazionale.

HasSequence<T>(ModelBuilder, String, String, Action<SequenceBuilder>)

Configura una sequenza di database quando la destinazione è un database relazionale.

HasSequence<T>(ModelBuilder, String, String, Action<RelationalSequenceBuilder>)

Configura una sequenza di database quando la destinazione è un database relazionale.

HasSequence<T>(ModelBuilder, String, String, Action<SequenceBuilder>)

Configura una sequenza di database quando la destinazione è un database relazionale.

UseCollation(ModelBuilder, String)

Configura le regole di confronto del database, che verranno utilizzate da tutte le colonne senza regole di confronto esplicite.

ForSqlServerHasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

Configura una sequenza di database quando la destinazione è SQL Server.

ForSqlServerHasSequence(ModelBuilder, String, String)

Configura una sequenza di database quando la destinazione è SQL Server.

ForSqlServerHasSequence(ModelBuilder, String, String, Action<RelationalSequenceBuilder>)

Configura una sequenza di database quando la destinazione è SQL Server.

ForSqlServerHasSequence(ModelBuilder, Type, String, Action<RelationalSequenceBuilder>)

Configura una sequenza di database quando la destinazione è SQL Server.

ForSqlServerHasSequence(ModelBuilder, Type, String, String)

Configura una sequenza di database quando la destinazione è SQL Server.

ForSqlServerHasSequence(ModelBuilder, Type, String, String, Action<RelationalSequenceBuilder>)

Configura una sequenza di database quando la destinazione è SQL Server.

ForSqlServerHasSequence<T>(ModelBuilder, String, Action<RelationalSequenceBuilder>)

Configura una sequenza di database quando la destinazione è SQL Server.

ForSqlServerHasSequence<T>(ModelBuilder, String, String)

Configura una sequenza di database quando la destinazione è SQL Server.

ForSqlServerHasSequence<T>(ModelBuilder, String, String, Action<RelationalSequenceBuilder>)

Configura una sequenza di database quando la destinazione è SQL Server.

ForSqlServerUseIdentityColumns(ModelBuilder)

Configura il modello per l'uso della funzionalità IDENTITY SQL Server per generare valori per le proprietà chiave contrassegnate come OnAdd, quando la destinazione è SQL Server. Questo è il comportamento predefinito quando la destinazione è SQL Server.

ForSqlServerUseIdentityColumns(ModelBuilder, Int32, Int32)
Obsoleti.

Configura il modello per l'uso della funzionalità IDENTITY SQL Server per generare valori per le proprietà chiave contrassegnate come OnAdd, quando la destinazione è SQL Server. Questo è il comportamento predefinito quando la destinazione è SQL Server.

ForSqlServerUseSequenceHiLo(ModelBuilder, String, String)
Obsoleti.

Configura il modello per l'uso di un modello hi-lo basato su sequenza per generare valori per le proprietà chiave contrassegnate come OnAdd, quando la destinazione è SQL Server.

HasDatabaseMaxSize(ModelBuilder, String)

Configura le dimensioni massime per Azure SQL Database.

HasPerformanceLevel(ModelBuilder, String)

Configura il livello di prestazioni (SERVICE_OBJECTIVE) per Azure SQL Database come valore letterale stringa.

HasPerformanceLevelSql(ModelBuilder, String)

Configura il livello di prestazioni (SERVICE_OBJECTIVE) per Azure SQL Database come espressione SQL.

HasServiceTier(ModelBuilder, String)

Configura il livello di servizio (EDITION) per Azure SQL Database come valore letterale stringa.

HasServiceTierSql(ModelBuilder, String)

Configura il livello di servizio (EDITION) per Azure SQL Database come espressione SQL.

UseHiLo(ModelBuilder, String, String)

Configura il modello per l'uso di un modello hi-lo basato su sequenza per generare valori per le proprietà chiave contrassegnate come OnAdd, quando la destinazione è SQL Server.

UseIdentityColumns(ModelBuilder, Int32, Int32)

Configura il modello per l'uso della funzionalità IDENTITY SQL Server per generare valori per le proprietà chiave contrassegnate come OnAdd, quando la destinazione è SQL Server. Questo è il comportamento predefinito quando la destinazione è SQL Server.

UseIdentityColumns(ModelBuilder, Int64, Int32)

Configura il modello per l'uso della funzionalità IDENTITY SQL Server per generare valori per le proprietà chiave contrassegnate come OnAdd, quando la destinazione è SQL Server. Questo è il comportamento predefinito quando la destinazione è SQL Server.

UseKeySequences(ModelBuilder, String, String)

Configura il modello in modo che usi una sequenza per gerarchia per generare valori per le proprietà chiave contrassegnate come OnAdd, quando la destinazione è SQL Server.

Si applica a