ModelBuilder Klasse

Definition

Stellt eine einfache API-Oberfläche zum Konfigurieren einer bereit IMutableModel , die die Form Ihrer Entitäten, die Beziehungen zwischen ihnen und ihre Zuordnung zur Datenbank definiert.

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)
Vererbung
ModelBuilder
Implementiert
IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalModelBuilder> IInfrastructure<IConventionModelBuilder>

Hinweise

Sie können verwenden ModelBuilder , um ein Modell für einen Kontext zu erstellen, indem Sie ihren abgeleiteten OnModelCreating(ModelBuilder) Kontext überschreiben. Alternativ können Sie das Modell extern erstellen und auf einer DbContextOptions instance festlegen, die an den Kontextkonstruktor übergeben wird.

Weitere Informationen und Beispiele finden Sie unter Modellieren von Entitätstypen und Beziehungen in EF Core .

Konstruktoren

ModelBuilder()

Initialisiert einen neuen instance der ModelBuilder -Klasse ohne Konventionen.

Warnung: Konventionen sind erforderlich, um ein richtiges Modell zu erstellen.

ModelBuilder(ConventionSet)

Initialisiert eine neue instance der -Klasse, die ModelBuilder eine Reihe von Konventionen anwendet.

ModelBuilder(ConventionSet, ModelDependencies)

Initialisiert eine neue instance der -Klasse, die ModelBuilder eine Reihe von Konventionen anwendet.

ModelBuilder(ConventionSet, ModelDependencies, ModelConfiguration)

Dies ist eine interne API, die die Entity Framework Core-Infrastruktur unterstützt und nicht den gleichen Kompatibilitätsstandards wie öffentliche APIs unterliegt. Es kann ohne Vorankündigung in einer Version geändert oder entfernt werden. Sie sollten es nur mit äußerster Vorsicht direkt im Code verwenden und wissen, dass dies beim Aktualisieren auf ein neues Entity Framework Core-Release zu Anwendungsfehlern führen kann.

ModelBuilder(IMutableModel)
Veraltet..

Dies ist eine interne API, die die Entity Framework Core-Infrastruktur unterstützt und nicht den gleichen Kompatibilitätsstandards wie öffentliche APIs unterliegt. Es kann ohne Vorankündigung in einer Version geändert oder entfernt werden. Sie sollten es nur mit äußerster Vorsicht direkt im Code verwenden und wissen, dass dies beim Aktualisieren auf ein neues Entity Framework Core-Release zu Anwendungsfehlern führen kann.

Eigenschaften

Model

Das zu konfigurierende Modell.

Methoden

ApplyConfiguration<TEntity>(IEntityTypeConfiguration<TEntity>)

Wendet eine Konfiguration an, die in einer IEntityTypeConfiguration<TEntity> instance definiert ist.

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

Wendet eine Konfiguration an, die in einer IQueryTypeConfiguration<TQuery> instance definiert ist.

ApplyConfigurationsFromAssembly(Assembly, Func<Type,Boolean>)

Wendet die Konfiguration von allen IEntityTypeConfiguration<TEntity> Instanzen an, die in der bereitgestellten Assembly definiert sind.

Entity(String)

Gibt ein -Objekt zurück, das zum Konfigurieren eines bestimmten Entitätstyps im Modell verwendet werden kann. Wenn ein Entitätstyp mit dem angegebenen Namen nicht bereits Teil des Modells ist, wird dem Modell ein neuer Entitätstyp hinzugefügt, der keinen entsprechenden CLR-Typ aufweist.

Entity(String, Action<EntityTypeBuilder>)

Führt die Konfiguration eines bestimmten Entitätstyps im Modell aus. Wenn ein Entitätstyp mit dem angegebenen Namen nicht bereits Teil des Modells ist, wird dem Modell ein neuer Entitätstyp hinzugefügt, der keinen entsprechenden CLR-Typ aufweist.

Entity(Type)

Gibt ein -Objekt zurück, das zum Konfigurieren eines bestimmten Entitätstyps im Modell verwendet werden kann. Wenn der Entitätstyp noch nicht Teil des Modells ist, wird er dem Modell hinzugefügt.

Entity(Type, Action<EntityTypeBuilder>)

Führt die Konfiguration eines bestimmten Entitätstyps im Modell aus. Wenn der Entitätstyp noch nicht Teil des Modells ist, wird er dem Modell hinzugefügt.

Entity<TEntity>()

Gibt ein -Objekt zurück, das zum Konfigurieren eines bestimmten Entitätstyps im Modell verwendet werden kann. Wenn der Entitätstyp noch nicht Teil des Modells ist, wird er dem Modell hinzugefügt.

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

Führt die Konfiguration eines bestimmten Entitätstyps im Modell aus. Wenn der Entitätstyp noch nicht Teil des Modells ist, wird er dem Modell hinzugefügt.

FinalizeModel()

Erzwingt die Nachverarbeitung für das Modell, sodass es von der Runtime verwendet werden kann. Diese Nachverarbeitung erfolgt automatisch, wenn sie verwendet OnModelCreating(ModelBuilder)wird. Mit dieser Methode kann sie explizit ausgeführt werden, wenn die automatische Ausführung nicht möglich ist.

HasAnnotation(String, Object)

Fügt eine Anmerkung zum Modell hinzu oder aktualisiert sie. Wenn eine Anmerkung mit dem in annotation angegebenen Schlüssel bereits vorhanden ist, wird ihr Wert aktualisiert.

HasChangeTrackingStrategy(ChangeTrackingStrategy)

Konfiguriert den Standard ChangeTrackingStrategy , der für dieses Modell verwendet werden soll. Diese Strategie gibt an, wie der Kontext Änderungen an Eigenschaften für eine instance eines Entitätstyps erkennt.

HasChangeTrackingStrategy(ChangeTrackingStrategy)

Konfiguriert den Standard ChangeTrackingStrategy , der für dieses Modell verwendet werden soll. Diese Strategie gibt an, wie der Kontext Änderungen an Eigenschaften für eine instance eines Entitätstyps erkennt.

Ignore(String)

Schließt einen Entitätstyp mit dem angegebenen Namen aus dem Modell aus. Diese Methode wird in der Regel verwendet, um Typen aus dem Modell zu entfernen, die durch die Konvention hinzugefügt wurden.

Ignore(Type)

Schließt einen Entitätstyp mit dem angegebenen CLR-Typ aus dem Modell aus. Diese Methode wird in der Regel verwendet, um Typen aus dem Modell zu entfernen, die durch die Konvention hinzugefügt wurden.

Ignore<TEntity>()

Schließt den angegebenen Entitätstyp aus dem Modell aus. Diese Methode wird in der Regel verwendet, um Typen aus dem Modell zu entfernen, die durch die Konvention hinzugefügt wurden.

Owned(Type)

Kennzeichnet einen Entitätstyp als besitzer besitzend. Alle Verweise auf diesen Typ werden als separate eigene Typinstanzen konfiguriert.

Owned<T>()

Kennzeichnet einen Entitätstyp als besitzer besitzend. Alle Verweise auf diesen Typ werden als separate eigene Typinstanzen konfiguriert.

Query(Type)
Veraltet..

Gibt ein -Objekt zurück, das zum Konfigurieren eines bestimmten Abfragetyps im Modell verwendet werden kann. Wenn der Abfragetyp noch nicht Teil des Modells ist, wird er dem Modell hinzugefügt.

Query(Type, Action<EntityTypeBuilder>)
Veraltet..

Führt die Konfiguration eines bestimmten Abfragetyps im Modell aus. Wenn der Abfragetyp noch nicht Teil des Modells ist, wird er dem Modell hinzugefügt.

Diese Überladung ermöglicht es, die Konfiguration des Abfragetyps in der Zeile im Methodenaufruf durchzuführen, anstatt nach einem Aufruf von verkettet zu Query<TQuery>()werden. Dadurch kann eine zusätzliche Konfiguration auf Modellebene nach der Konfiguration für den Abfragetyp verkettet werden.

Query(Type, Action<QueryTypeBuilder>)

Führt die Konfiguration eines bestimmten Abfragetyps im Modell aus. Wenn der Abfragetyp noch nicht Teil des Modells ist, wird er dem Modell hinzugefügt.

Diese Überladung ermöglicht es, die Konfiguration des Abfragetyps in der Zeile im Methodenaufruf durchzuführen, anstatt nach einem Aufruf von verkettet zu Query<TQuery>()werden. Dadurch kann eine zusätzliche Konfiguration auf Modellebene nach der Konfiguration für den Abfragetyp verkettet werden.

Query<TQuery>()
Veraltet..

Gibt ein -Objekt zurück, das zum Konfigurieren eines bestimmten Abfragetyps im Modell verwendet werden kann. Wenn der Abfragetyp noch nicht Teil des Modells ist, wird er dem Modell hinzugefügt.

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

Führt die Konfiguration eines bestimmten Abfragetyps im Modell aus. Wenn der Abfragetyp noch nicht Teil des Modells ist, wird er dem Modell hinzugefügt.

Diese Überladung ermöglicht es, die Konfiguration des Abfragetyps in der Zeile im Methodenaufruf durchzuführen, anstatt nach einem Aufruf von verkettet zu Query<TQuery>()werden. Dadurch kann eine zusätzliche Konfiguration auf Modellebene nach der Konfiguration für den Abfragetyp verkettet werden.

SharedTypeEntity(String, Type)

Gibt ein -Objekt zurück, das zum Konfigurieren eines bestimmten Entitätstyps für freigegebene Typen im Modell verwendet werden kann.

SharedTypeEntity(String, Type, Action<EntityTypeBuilder>)

Gibt ein -Objekt zurück, das zum Konfigurieren eines bestimmten Entitätstyps für freigegebene Typen im Modell verwendet werden kann.

SharedTypeEntity<TEntity>(String)

Gibt ein -Objekt zurück, das zum Konfigurieren eines bestimmten Entitätstyps für freigegebene Typen im Modell verwendet werden kann.

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

Gibt ein -Objekt zurück, das zum Konfigurieren eines bestimmten Entitätstyps für freigegebene Typen im Modell verwendet werden kann.

UsePropertyAccessMode(PropertyAccessMode)

Legt fest, dass für PropertyAccessMode alle Eigenschaften dieses Entitätstyps verwendet werden soll.

Standardmäßig wird das Sicherungsfeld verwendet, wenn es aufgrund der Konvention gefunden oder angegeben wurde, wenn neue Objekte erstellt werden, in der Regel, wenn Entitäten aus der Datenbank abgefragt werden. Eigenschaften werden für alle anderen Zugriffe verwendet. Das Aufrufen dieser Methode ändert dieses Verhalten für alle Eigenschaften im Modell, wie in der PropertyAccessMode Enumeration beschrieben.

UsePropertyAccessMode(PropertyAccessMode)

Legt fest, dass für PropertyAccessMode alle Eigenschaften dieses Entitätstyps verwendet werden soll.

Explizite Schnittstellenimplementierungen

IInfrastructure<IConventionModelBuilder>.Instance

Der interne ModelBuilder , der zum Konfigurieren dieses Modells verwendet wird.

IInfrastructure<InternalModelBuilder>.Instance

Der interne ModelBuilder , der zum Konfigurieren dieses Modells verwendet wird.

Diese Eigenschaft ist für die Verwendung durch Erweiterungsmethoden zum Konfigurieren des Modells vorgesehen. Sie ist nicht für die Verwendung im Anwendungscode vorgesehen.

Erweiterungsmethoden

HasAutoscaleThroughput(ModelBuilder, Nullable<Int32>)

Konfiguriert das Angebot für den bereitgestellten Automatischskalierungsdurchsatz.

HasDefaultContainer(ModelBuilder, String)

Konfiguriert den Standardcontainernamen, der verwendet wird, wenn kein Name explizit für einen Entitätstyp konfiguriert ist.

HasManualThroughput(ModelBuilder, Nullable<Int32>)

Konfiguriert das Angebot für manuell bereitgestellten Durchsatz.

GetInfrastructure<T>(IInfrastructure<T>)

Ruft den Wert aus einer Eigenschaft ab, die mit IInfrastructure<T>ausgeblendet wird.

Diese Methode wird in der Regel von Datenbankanbietern (und anderen Erweiterungen) verwendet. Es wird im Allgemeinen nicht im Anwendungscode verwendet.

HasDbFunction(ModelBuilder, MethodInfo)

Konfiguriert eine Datenbankfunktion, wenn eine relationale Datenbank als Ziel verwendet wird.

HasDbFunction(ModelBuilder, MethodInfo, Action<DbFunctionBuilder>)

Konfiguriert eine Datenbankfunktion, wenn eine relationale Datenbank als Ziel verwendet wird.

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

Konfiguriert eine Datenbankfunktion, wenn eine relationale Datenbank als Ziel verwendet wird.

HasDefaultSchema(ModelBuilder, String)

Konfiguriert das Standardschema, in dem Datenbankobjekte erstellt werden sollen, wenn kein Schema explizit konfiguriert ist.

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

Konfiguriert eine Datenbanksequenz beim Ziel einer relationalen Datenbank.

HasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

Konfiguriert eine Datenbanksequenz beim Ziel einer relationalen Datenbank.

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

Konfiguriert eine Datenbanksequenz beim Ziel einer relationalen Datenbank.

HasSequence(ModelBuilder, String, String)

Konfiguriert eine Datenbanksequenz beim Ziel einer relationalen Datenbank.

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

Konfiguriert eine Datenbanksequenz beim Ziel einer relationalen Datenbank.

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

Konfiguriert eine Datenbanksequenz beim Ziel einer relationalen Datenbank.

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

Konfiguriert eine Datenbanksequenz beim Ziel einer relationalen Datenbank.

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

Konfiguriert eine Datenbanksequenz beim Ziel einer relationalen Datenbank.

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

Konfiguriert eine Datenbanksequenz beim Ziel einer relationalen Datenbank.

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

Konfiguriert eine Datenbanksequenz beim Ziel einer relationalen Datenbank.

HasSequence(ModelBuilder, Type, String, String)

Konfiguriert eine Datenbanksequenz beim Ziel einer relationalen Datenbank.

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

Konfiguriert eine Datenbanksequenz beim Ziel einer relationalen Datenbank.

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

Konfiguriert eine Datenbanksequenz beim Ziel einer relationalen Datenbank.

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

Konfiguriert eine Datenbanksequenz beim Ziel einer relationalen Datenbank.

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

Konfiguriert eine Datenbanksequenz beim Ziel einer relationalen Datenbank.

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

Konfiguriert eine Datenbanksequenz beim Ziel einer relationalen Datenbank.

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

Konfiguriert eine Datenbanksequenz beim Ziel einer relationalen Datenbank.

HasSequence<T>(ModelBuilder, String, String)

Konfiguriert eine Datenbanksequenz beim Ziel einer relationalen Datenbank.

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

Konfiguriert eine Datenbanksequenz beim Ziel einer relationalen Datenbank.

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

Konfiguriert eine Datenbanksequenz beim Ziel einer relationalen Datenbank.

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

Konfiguriert eine Datenbanksequenz beim Ziel einer relationalen Datenbank.

UseCollation(ModelBuilder, String)

Konfiguriert die Datenbanksortierung, die von allen Spalten ohne explizite Sortierung verwendet wird.

ForSqlServerHasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

Konfiguriert eine Datenbanksequenz beim Ziel SQL Server.

ForSqlServerHasSequence(ModelBuilder, String, String)

Konfiguriert eine Datenbanksequenz beim Ziel SQL Server.

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

Konfiguriert eine Datenbanksequenz beim Ziel SQL Server.

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

Konfiguriert eine Datenbanksequenz beim Ziel SQL Server.

ForSqlServerHasSequence(ModelBuilder, Type, String, String)

Konfiguriert eine Datenbanksequenz beim Ziel SQL Server.

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

Konfiguriert eine Datenbanksequenz beim Ziel SQL Server.

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

Konfiguriert eine Datenbanksequenz beim Ziel SQL Server.

ForSqlServerHasSequence<T>(ModelBuilder, String, String)

Konfiguriert eine Datenbanksequenz beim Ziel SQL Server.

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

Konfiguriert eine Datenbanksequenz beim Ziel SQL Server.

ForSqlServerUseIdentityColumns(ModelBuilder)

Konfiguriert das Modell so, dass das SQL Server IDENTITY-Feature verwendet wird, um Werte für als gekennzeichnete OnAddSchlüsseleigenschaften zu generieren, wenn SQL Server. Dies ist das Standardverhalten beim Ziel SQL Server.

ForSqlServerUseIdentityColumns(ModelBuilder, Int32, Int32)
Veraltet..

Konfiguriert das Modell so, dass das SQL Server IDENTITY-Feature verwendet wird, um Werte für als gekennzeichnete OnAddSchlüsseleigenschaften zu generieren, wenn SQL Server. Dies ist das Standardverhalten beim Ziel SQL Server.

ForSqlServerUseSequenceHiLo(ModelBuilder, String, String)
Veraltet..

Konfiguriert das Modell so, dass ein sequenzbasiertes Hi-Lo-Muster verwendet wird, um Werte für als gekennzeichnete OnAddSchlüsseleigenschaften zu generieren, wenn SQL Server.

HasDatabaseMaxSize(ModelBuilder, String)

Konfiguriert die maximale Größe für Azure SQL-Datenbank.

HasPerformanceLevel(ModelBuilder, String)

Konfiguriert die Leistungsstufe (SERVICE_OBJECTIVE) für Azure SQL-Datenbank als Zeichenfolgenliteral.

HasPerformanceLevelSql(ModelBuilder, String)

Konfiguriert die Leistungsstufe (SERVICE_OBJECTIVE) für Azure SQL-Datenbank als SQL-Ausdruck.

HasServiceTier(ModelBuilder, String)

Konfiguriert die Dienstebene (EDITION) für Azure SQL-Datenbank als Zeichenfolgenliteral.

HasServiceTierSql(ModelBuilder, String)

Konfiguriert die Dienstebene (EDITION) für Azure SQL Database als SQL-Ausdruck.

UseHiLo(ModelBuilder, String, String)

Konfiguriert das Modell so, dass ein sequenzbasiertes Hi-Lo-Muster verwendet wird, um Werte für als gekennzeichnete OnAddSchlüsseleigenschaften zu generieren, wenn SQL Server.

UseIdentityColumns(ModelBuilder, Int32, Int32)

Konfiguriert das Modell so, dass das SQL Server IDENTITY-Feature verwendet wird, um Werte für als gekennzeichnete OnAddSchlüsseleigenschaften zu generieren, wenn SQL Server. Dies ist das Standardverhalten beim Ziel SQL Server.

UseIdentityColumns(ModelBuilder, Int64, Int32)

Konfiguriert das Modell so, dass das SQL Server IDENTITY-Feature verwendet wird, um Werte für als gekennzeichnete OnAddSchlüsseleigenschaften zu generieren, wenn SQL Server. Dies ist das Standardverhalten beim Ziel SQL Server.

UseKeySequences(ModelBuilder, String, String)

Konfiguriert das Modell so, dass eine Sequenz pro Hierarchie verwendet wird, um Werte für Schlüsseleigenschaften zu generieren, die als OnAddgekennzeichnet sind, wenn SQL Server.

Gilt für: