Sdílet prostřednictvím


ModelBuilder Třída

Definice

Poskytuje jednoduchou plochu rozhraní API pro konfiguraci IMutableModel , která definuje tvar entit, vztahy mezi nimi a způsob jejich mapování na databázi.

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)
Dědičnost
ModelBuilder
Implementuje
IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalModelBuilder> IInfrastructure<IConventionModelBuilder>

Poznámky

Můžete použít ModelBuilder k vytvoření modelu pro kontext přepsáním OnModelCreating(ModelBuilder) na odvozený kontext. Alternativně můžete vytvořit model externě a nastavit ho DbContextOptions na instanci, která je předána konstruktoru kontextu.

Další informace a příklady najdete v tématu Modelování typů entit a relací v EF Core .

Konstruktory

ModelBuilder()

Inicializuje novou instanci ModelBuilder třídy bez konvencí.

Upozornění: K vytvoření správného modelu jsou potřeba konvence.

ModelBuilder(ConventionSet)

Inicializuje novou instanci ModelBuilder třídy, která použije sadu konvencí.

ModelBuilder(ConventionSet, ModelDependencies)

Inicializuje novou instanci ModelBuilder třídy, která použije sadu konvencí.

ModelBuilder(ConventionSet, ModelDependencies, ModelConfiguration)

Jedná se o interní rozhraní API, které podporuje infrastrukturu Entity Framework Core a nepodléhá stejným standardům kompatibility jako veřejná rozhraní API. V libovolné verzi může být bez upozornění změněna nebo odebrána. Měli byste ho používat přímo v kódu pouze s mimořádnou opatrností a s vědomím, že při aktualizaci na novou verzi Entity Framework Core může dojít k selháním aplikace.

ModelBuilder(IMutableModel)
Zastaralé.

Jedná se o interní rozhraní API, které podporuje infrastrukturu Entity Framework Core a nepodléhá stejným standardům kompatibility jako veřejná rozhraní API. V libovolné verzi může být bez upozornění změněna nebo odebrána. Měli byste ho používat přímo v kódu pouze s mimořádnou opatrností a s vědomím, že při aktualizaci na novou verzi Entity Framework Core může dojít k selháním aplikace.

Vlastnosti

Model

Konfigurovaný model

Metody

ApplyConfiguration<TEntity>(IEntityTypeConfiguration<TEntity>)

Použije konfiguraci, která je definovaná IEntityTypeConfiguration<TEntity> v instanci.

ApplyConfiguration<TQuery>(IQueryTypeConfiguration<TQuery>)
Zastaralé.

Použije konfiguraci, která je definovaná IQueryTypeConfiguration<TQuery> v instanci.

ApplyConfigurationsFromAssembly(Assembly, Func<Type,Boolean>)

Použije konfiguraci ze všech IEntityTypeConfiguration<TEntity> instancí, které jsou definovány v zadaném sestavení.

Entity(String)

Vrátí objekt, který lze použít ke konfiguraci daného typu entity v modelu. Pokud typ entity se zadaným názvem ještě není součástí modelu, přidá se do modelu nový typ entity, který nemá odpovídající typ CLR.

Entity(String, Action<EntityTypeBuilder>)

Provede konfiguraci daného typu entity v modelu. Pokud typ entity se zadaným názvem ještě není součástí modelu, přidá se do modelu nový typ entity, který nemá odpovídající typ CLR.

Entity(Type)

Vrátí objekt, který lze použít ke konfiguraci daného typu entity v modelu. Pokud typ entity ještě není součástí modelu, přidá se do modelu.

Entity(Type, Action<EntityTypeBuilder>)

Provede konfiguraci daného typu entity v modelu. Pokud typ entity ještě není součástí modelu, přidá se do modelu.

Entity<TEntity>()

Vrátí objekt, který lze použít ke konfiguraci daného typu entity v modelu. Pokud typ entity ještě není součástí modelu, přidá se do modelu.

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

Provede konfiguraci daného typu entity v modelu. Pokud typ entity ještě není součástí modelu, přidá se do modelu.

FinalizeModel()

Vynutí následné zpracování modelu tak, aby byl připraven k použití modulem runtime. K tomuto následnému zpracování dojde automaticky při použití OnModelCreating(ModelBuilder). Tato metoda umožňuje explicitně spustit v případech, kdy automatické spuštění není možné.

HasAnnotation(String, Object)

Přidá nebo aktualizuje poznámku k modelu. Pokud anotaci s klíčem zadaným v annotation souboru již existuje, bude její hodnota aktualizována.

HasChangeTrackingStrategy(ChangeTrackingStrategy)

Nakonfiguruje výchozí ChangeTrackingStrategy nastavení pro použití pro tento model. Tato strategie určuje, jak kontext detekuje změny vlastností instance typu entity.

HasChangeTrackingStrategy(ChangeTrackingStrategy)

Nakonfiguruje výchozí ChangeTrackingStrategy nastavení pro použití pro tento model. Tato strategie určuje, jak kontext detekuje změny vlastností instance typu entity.

Ignore(String)

Vyloučí z modelu typ entity s daným názvem. Tato metoda se obvykle používá k odebrání typů z modelu, které byly přidány podle konvence.

Ignore(Type)

Vyloučí z modelu typ entity s daným typem CLR. Tato metoda se obvykle používá k odebrání typů z modelu, které byly přidány podle konvence.

Ignore<TEntity>()

Vyloučí daný typ entity z modelu. Tato metoda se obvykle používá k odebrání typů z modelu, které byly přidány podle konvence.

Owned(Type)

Označí typ entity jako vlastněný. Všechny odkazy na tento typ budou nakonfigurovány jako samostatné vlastněné instance typu.

Owned<T>()

Označí typ entity jako vlastněný. Všechny odkazy na tento typ budou nakonfigurovány jako samostatné vlastněné instance typu.

Query(Type)
Zastaralé.

Vrátí objekt, který lze použít ke konfiguraci daného typu dotazu v modelu. Pokud typ dotazu ještě není součástí modelu, přidá se do modelu.

Query(Type, Action<EntityTypeBuilder>)
Zastaralé.

Provede konfiguraci daného typu dotazu v modelu. Pokud typ dotazu ještě není součástí modelu, přidá se do modelu.

Toto přetížení umožňuje, aby se konfigurace typu dotazu prováděla na řádku ve volání metody, a ne zřetězený po volání metody Query<TQuery>(). To umožňuje zřetězený další konfiguraci na úrovni modelu po konfiguraci typu dotazu.

Query(Type, Action<QueryTypeBuilder>)

Provede konfiguraci daného typu dotazu v modelu. Pokud typ dotazu ještě není součástí modelu, přidá se do modelu.

Toto přetížení umožňuje, aby se konfigurace typu dotazu prováděla na řádku ve volání metody, a ne zřetězený po volání metody Query<TQuery>(). To umožňuje zřetězený další konfiguraci na úrovni modelu po konfiguraci typu dotazu.

Query<TQuery>()
Zastaralé.

Vrátí objekt, který lze použít ke konfiguraci daného typu dotazu v modelu. Pokud typ dotazu ještě není součástí modelu, přidá se do modelu.

Query<TQuery>(Action<QueryTypeBuilder<TQuery>>)
Zastaralé.

Provede konfiguraci daného typu dotazu v modelu. Pokud typ dotazu ještě není součástí modelu, přidá se do modelu.

Toto přetížení umožňuje, aby se konfigurace typu dotazu prováděla na řádku ve volání metody, a ne zřetězený po volání metody Query<TQuery>(). To umožňuje zřetězený další konfiguraci na úrovni modelu po konfiguraci typu dotazu.

SharedTypeEntity(String, Type)

Vrátí objekt, který lze použít ke konfiguraci typu entity daného sdíleného typu v modelu.

SharedTypeEntity(String, Type, Action<EntityTypeBuilder>)

Vrátí objekt, který lze použít ke konfiguraci typu entity daného sdíleného typu v modelu.

SharedTypeEntity<TEntity>(String)

Vrátí objekt, který lze použít ke konfiguraci typu entity daného sdíleného typu v modelu.

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

Vrátí objekt, který lze použít ke konfiguraci typu entity daného sdíleného typu v modelu.

UsePropertyAccessMode(PropertyAccessMode)

Nastaví pro PropertyAccessMode použití pro všechny vlastnosti tohoto typu entity.

Ve výchozím nastavení se záložní pole, pokud je nalezeno podle konvence nebo bylo zadáno, používá při vytváření nových objektů, obvykle při dotazování entit z databáze. Vlastnosti se používají pro všechny ostatní přístupy. Volání této metody změní toto chování pro všechny vlastnosti v modelu, jak je popsáno ve výčtu PropertyAccessMode .

UsePropertyAccessMode(PropertyAccessMode)

Nastaví pro PropertyAccessMode použití pro všechny vlastnosti tohoto typu entity.

Explicitní implementace rozhraní

IInfrastructure<IConventionModelBuilder>.Instance

Interní ModelBuilder používaná ke konfiguraci tohoto modelu.

IInfrastructure<InternalModelBuilder>.Instance

Interní ModelBuilder používaná ke konfiguraci tohoto modelu.

Tato vlastnost je určena pro použití rozšiřujícími metodami ke konfiguraci modelu. Není určen pro použití v kódu aplikace.

Metody rozšíření

HasAutoscaleThroughput(ModelBuilder, Nullable<Int32>)

Nakonfiguruje nabídku automatického škálování zřízené propustnosti.

HasDefaultContainer(ModelBuilder, String)

Nakonfiguruje výchozí název kontejneru, který se použije, pokud pro typ entity není explicitně nakonfigurovaný žádný název.

HasManualThroughput(ModelBuilder, Nullable<Int32>)

Nakonfiguruje nabídku ručně zřízené propustnosti.

GetInfrastructure<T>(IInfrastructure<T>)

Získá hodnotu z vlastnosti, která je skryta pomocí IInfrastructure<T>.

Tuto metodu obvykle používají poskytovatelé databází (a další rozšíření). Obvykle se nepoužívá v kódu aplikace.

HasDbFunction(ModelBuilder, MethodInfo)

Konfiguruje funkci databáze při cílení na relační databázi.

HasDbFunction(ModelBuilder, MethodInfo, Action<DbFunctionBuilder>)

Konfiguruje funkci databáze při cílení na relační databázi.

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

Konfiguruje funkci databáze při cílení na relační databázi.

HasDefaultSchema(ModelBuilder, String)

Konfiguruje výchozí schéma, ve které by měly být vytvořeny databázové objekty, pokud není explicitně nakonfigurováno žádné schéma.

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

Konfiguruje sekvenci databáze při cílení na relační databázi.

HasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

Konfiguruje sekvenci databáze při cílení na relační databázi.

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

Konfiguruje sekvenci databáze při cílení na relační databázi.

HasSequence(ModelBuilder, String, String)

Konfiguruje sekvenci databáze při cílení na relační databázi.

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

Konfiguruje sekvenci databáze při cílení na relační databázi.

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

Konfiguruje sekvenci databáze při cílení na relační databázi.

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

Konfiguruje sekvenci databáze při cílení na relační databázi.

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

Konfiguruje sekvenci databáze při cílení na relační databázi.

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

Konfiguruje sekvenci databáze při cílení na relační databázi.

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

Konfiguruje sekvenci databáze při cílení na relační databázi.

HasSequence(ModelBuilder, Type, String, String)

Konfiguruje sekvenci databáze při cílení na relační databázi.

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

Konfiguruje sekvenci databáze při cílení na relační databázi.

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

Konfiguruje sekvenci databáze při cílení na relační databázi.

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

Konfiguruje sekvenci databáze při cílení na relační databázi.

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

Konfiguruje sekvenci databáze při cílení na relační databázi.

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

Konfiguruje sekvenci databáze při cílení na relační databázi.

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

Konfiguruje sekvenci databáze při cílení na relační databázi.

HasSequence<T>(ModelBuilder, String, String)

Konfiguruje sekvenci databáze při cílení na relační databázi.

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

Konfiguruje sekvenci databáze při cílení na relační databázi.

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

Konfiguruje sekvenci databáze při cílení na relační databázi.

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

Konfiguruje sekvenci databáze při cílení na relační databázi.

UseCollation(ModelBuilder, String)

Nakonfiguruje kolaci databáze, kterou budou používat všechny sloupce bez explicitní kolace.

ForSqlServerHasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

Konfiguruje sekvenci databáze při cílení na SQL Server.

ForSqlServerHasSequence(ModelBuilder, String, String)

Konfiguruje sekvenci databáze při cílení na SQL Server.

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

Konfiguruje sekvenci databáze při cílení na SQL Server.

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

Konfiguruje sekvenci databáze při cílení na SQL Server.

ForSqlServerHasSequence(ModelBuilder, Type, String, String)

Konfiguruje sekvenci databáze při cílení na SQL Server.

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

Konfiguruje sekvenci databáze při cílení na SQL Server.

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

Konfiguruje sekvenci databáze při cílení na SQL Server.

ForSqlServerHasSequence<T>(ModelBuilder, String, String)

Konfiguruje sekvenci databáze při cílení na SQL Server.

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

Konfiguruje sekvenci databáze při cílení na SQL Server.

ForSqlServerUseIdentityColumns(ModelBuilder)

Nakonfiguruje model tak, aby při cílení na SQL Server používal funkci SQL Server IDENTITY ke generování hodnot pro klíčové vlastnosti označené jako OnAdd. Toto je výchozí chování při cílení na SQL Server.

ForSqlServerUseIdentityColumns(ModelBuilder, Int32, Int32)
Zastaralé.

Nakonfiguruje model tak, aby při cílení na SQL Server používal funkci SQL Server IDENTITY ke generování hodnot pro klíčové vlastnosti označené jako OnAdd. Toto je výchozí chování při cílení na SQL Server.

ForSqlServerUseSequenceHiLo(ModelBuilder, String, String)
Zastaralé.

Konfiguruje model tak, aby při cílení na SQL Server používal vzor hi-lo založený na posloupnosti ke generování hodnot pro klíčové vlastnosti označené jako OnAdd.

HasDatabaseMaxSize(ModelBuilder, String)

Nakonfiguruje maximální velikost databáze Azure SQL.

HasPerformanceLevel(ModelBuilder, String)

Nakonfiguruje úroveň výkonu (SERVICE_OBJECTIVE) pro Azure SQL Database jako řetězcový literál.

HasPerformanceLevelSql(ModelBuilder, String)

Nakonfiguruje úroveň výkonu (SERVICE_OBJECTIVE) pro Azure SQL Database jako výraz SQL.

HasServiceTier(ModelBuilder, String)

Nakonfiguruje úroveň služby (EDICE) pro službu Azure SQL Database jako řetězcový literál.

HasServiceTierSql(ModelBuilder, String)

Nakonfiguruje úroveň služby (EDICE) pro službu Azure SQL Database jako výraz SQL.

UseHiLo(ModelBuilder, String, String)

Konfiguruje model tak, aby při cílení na SQL Server používal vzor hi-lo založený na posloupnosti ke generování hodnot pro klíčové vlastnosti označené jako OnAdd.

UseIdentityColumns(ModelBuilder, Int32, Int32)

Nakonfiguruje model tak, aby při cílení na SQL Server používal funkci SQL Server IDENTITY ke generování hodnot pro klíčové vlastnosti označené jako OnAdd. Toto je výchozí chování při cílení na SQL Server.

UseIdentityColumns(ModelBuilder, Int64, Int32)

Nakonfiguruje model tak, aby při cílení na SQL Server používal funkci SQL Server IDENTITY ke generování hodnot pro klíčové vlastnosti označené jako OnAdd. Toto je výchozí chování při cílení na SQL Server.

UseKeySequences(ModelBuilder, String, String)

Nakonfiguruje model tak, aby při cílení na SQL Server používal posloupnost pro každou hierarchii a vygeneroval hodnoty pro klíčové vlastnosti označené jako OnAdd.

Platí pro