ModelBuilder Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 |
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
Entity Framework