Lingua

ModelBuilder Classe

Definizione

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

public class ModelBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalModelBuilder>
[System.Runtime.CompilerServices.Nullable(0)]
public class ModelBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionModelBuilder>
public class ModelBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionModelBuilder>
type ModelBuilder = class
    interface IInfrastructure<InternalModelBuilder>
[<System.Runtime.CompilerServices.Nullable(0)>]
type ModelBuilder = class
    interface IInfrastructure<IConventionModelBuilder>
type ModelBuilder = class
    interface IInfrastructure<IConventionModelBuilder>
Public Class ModelBuilder
Implements IInfrastructure(Of InternalModelBuilder)
Public Class ModelBuilder
Implements IInfrastructure(Of IConventionModelBuilder)
Ereditarietà
ModelBuilder
Attributi
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

Nome Descrizione
ModelBuilder()

Inizializza una nuova istanza della ModelBuilder classe senza convenzioni.

Avviso: sono necessarie convenzioni per compilare un modello corretto.

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 Entity Framework Core.

ModelBuilder(ConventionSet, ModelDependencies)

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

ModelBuilder(ConventionSet)

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

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 Entity Framework Core.

Proprietà

Nome Descrizione
Model

Modello configurato.

Metodi

Nome Descrizione
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, 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(String)

Restituisce un oggetto che può essere utilizzato per configurare 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, 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(Type)

Restituisce un oggetto che può essere utilizzato per configurare 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 determinato tipo di entità 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 utilizzare 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 utilizzare per questo modello. Questa strategia indica come il contesto rileva le modifiche alle proprietà per un'istanza di un tipo di entità.

HasEmbeddedDiscriminatorName(String)

Imposta il nome da usare per le proprietà discriminatorie incorporate nei documenti JSON. Il valore predefinito è "$type".

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 che sono stati aggiunti 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 che sono stati aggiunti per convenzione.

Ignore<TEntity>()

Esclude il tipo di entità specificato dal modello. Questo metodo viene in genere usato per rimuovere i tipi dal modello che sono stati aggiunti 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, 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 concatenato 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 concatenato 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)
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>()
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 concatenato 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, Action<EntityTypeBuilder>)

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

SharedTypeEntity(String, Type)

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.

SharedTypeEntity<TEntity>(String)

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 è stato specificato, viene utilizzato 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 il 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

Nome Descrizione
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

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

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, String, String)

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, 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<T>(ModelBuilder, String, Action<RelationalSequenceBuilder>)

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.

ForSqlServerHasSequence<T>(ModelBuilder, String, String)

Configura una sequenza di database 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.

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.

ForSqlServerUseSequenceHiLo(ModelBuilder, String, String)
Obsoleti.

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

GetInfrastructure<T>(IInfrastructure<T>)

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

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

HasAutoscaleThroughput(ModelBuilder, Nullable<Int32>)

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

HasDatabaseMaxSize(ModelBuilder, String)

Configura le dimensioni massime per database SQL di Azure.

HasDbFunction(ModelBuilder, MethodInfo, Action<DbFunctionBuilder>)

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

HasDbFunction(ModelBuilder, MethodInfo)

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.

HasDefaultContainer(ModelBuilder, String)

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

HasDefaultFullTextLanguage(ModelBuilder, String)

Configura una lingua predefinita da usare per la ricerca full-text nell'ambito del database.

HasDefaultSchema(ModelBuilder, String)

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

HasDiscriminatorInJsonIds(ModelBuilder, Nullable<Boolean>)

Include il valore discriminatorio del tipo di entità nel valore "id" JSON. Questo è il comportamento predefinito prima di EF Core 9.

HasFullTextCatalog(ModelBuilder, String)

Configura un catalogo full-text nel modello.

HasManualThroughput(ModelBuilder, Nullable<Int32>)

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

HasPerformanceLevel(ModelBuilder, String)

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

HasPerformanceLevelSql(ModelBuilder, String)

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

HasRootDiscriminatorInJsonId(ModelBuilder, Nullable<Boolean>)

Include il valore discriminatorio del tipo di entità radice nel valore "id" JSON. Ciò consente di salvare i tipi con la stessa chiave primaria nello stesso contenitore, consentendo comunque l'uso di "ReadItem" per le ricerche di un tipo sconosciuto.

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, 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, String, 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, 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, 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(ModelBuilder, Type, String, 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<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, 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.

HasSequence<T>(ModelBuilder, String, 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.

HasServiceTier(ModelBuilder, String)

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

HasServiceTierSql(ModelBuilder, String)

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

HasShadowIds(ModelBuilder, Nullable<Boolean>)

Forza la creazione di modelli per creare sempre una proprietà shadow "__id" mappata al codice JSON "id". Questo è il comportamento predefinito prima di EF Core 9.0.

UseCollation(ModelBuilder, String)

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

UseHiLo(ModelBuilder, String, String)

Configura il modello per l'uso di un modello di 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 per l'uso di una sequenza per gerarchia per generare valori per le proprietà chiave contrassegnate come OnAdd, quando la destinazione è SQL Server.

UseNamedDefaultConstraints(ModelBuilder, Boolean)

Configura il modello in modo che usi vincoli predefiniti denominati.

Si applica a