ModelBuilder Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Udostępnia prostą powierzchnię interfejsu API do konfigurowania obiektu IMutableModel definiującego kształt jednostek, relacje między nimi i sposób ich mapowania na bazę danych.
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)
- Dziedziczenie
-
ModelBuilder
- Atrybuty
- Implementuje
-
IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalModelBuilder> IInfrastructure<IConventionModelBuilder>
Uwagi
Możesz użyć ModelBuilder polecenia , aby utworzyć model dla kontekstu, przesłonięć OnModelCreating(ModelBuilder) kontekst pochodny. Alternatywnie możesz utworzyć model zewnętrznie i ustawić go na DbContextOptions wystąpieniu przekazanym do konstruktora kontekstu.
Aby uzyskać więcej informacji i przykładów, zobacz Modelowanie typów jednostek i relacji w programie EF Core .
Konstruktory
| Nazwisko | Opis |
|---|---|
| ModelBuilder() |
Inicjuje ModelBuilder nowe wystąpienie klasy bez konwencji. Ostrzeżenie: konwencje są potrzebne do utworzenia poprawnego modelu. |
| ModelBuilder(ConventionSet, ModelDependencies, ModelConfiguration) |
Jest to wewnętrzny interfejs API, który obsługuje infrastrukturę Entity Framework Core i nie podlega tym samym standardom zgodności co publiczne interfejsy API. Można go zmienić lub usunąć bez powiadomienia w jakiejkolwiek wersji. Należy używać go bezpośrednio w kodzie z wyjątkową ostrożnością i wiedząc, że może to spowodować błędy aplikacji podczas aktualizowania do nowej wersji Entity Framework Core. |
| ModelBuilder(ConventionSet, ModelDependencies) |
Inicjuje ModelBuilder nowe wystąpienie klasy, które zastosuje zestaw konwencji. |
| ModelBuilder(ConventionSet) |
Inicjuje ModelBuilder nowe wystąpienie klasy, które zastosuje zestaw konwencji. |
| ModelBuilder(IMutableModel) |
Przestarzałe.
Jest to wewnętrzny interfejs API, który obsługuje infrastrukturę Entity Framework Core i nie podlega tym samym standardom zgodności co publiczne interfejsy API. Można go zmienić lub usunąć bez powiadomienia w jakiejkolwiek wersji. Należy używać go bezpośrednio w kodzie z wyjątkową ostrożnością i wiedząc, że może to spowodować błędy aplikacji podczas aktualizowania do nowej wersji Entity Framework Core. |
Właściwości
| Nazwisko | Opis |
|---|---|
| Model |
Konfigurowany model. |
Metody
| Nazwisko | Opis |
|---|---|
| ApplyConfiguration<TEntity>(IEntityTypeConfiguration<TEntity>) |
Stosuje konfigurację zdefiniowaną w wystąpieniu IEntityTypeConfiguration<TEntity> . |
| ApplyConfiguration<TQuery>(IQueryTypeConfiguration<TQuery>) |
Przestarzałe.
Stosuje konfigurację zdefiniowaną w wystąpieniu IQueryTypeConfiguration<TQuery> . |
| ApplyConfigurationsFromAssembly(Assembly, Func<Type,Boolean>) |
Stosuje konfigurację ze wszystkich IEntityTypeConfiguration<TEntity> wystąpień zdefiniowanych w podanym zestawie. |
| Entity(String, Action<EntityTypeBuilder>) |
Wykonuje konfigurację danego typu jednostki w modelu. Jeśli typ jednostki o podanej nazwie nie jest jeszcze częścią modelu, nowy typ jednostki, który nie ma odpowiedniego typu CLR, zostanie dodany do modelu. |
| Entity(String) |
Zwraca obiekt, którego można użyć do skonfigurowania danego typu jednostki w modelu. Jeśli typ jednostki o podanej nazwie nie jest jeszcze częścią modelu, nowy typ jednostki, który nie ma odpowiedniego typu CLR, zostanie dodany do modelu. |
| Entity(Type, Action<EntityTypeBuilder>) |
Wykonuje konfigurację danego typu jednostki w modelu. Jeśli typ jednostki nie jest jeszcze częścią modelu, zostanie dodany do modelu. |
| Entity(Type) |
Zwraca obiekt, którego można użyć do skonfigurowania danego typu jednostki w modelu. Jeśli typ jednostki nie jest jeszcze częścią modelu, zostanie dodany do modelu. |
| Entity<TEntity>() |
Zwraca obiekt, którego można użyć do skonfigurowania danego typu jednostki w modelu. Jeśli typ jednostki nie jest jeszcze częścią modelu, zostanie dodany do modelu. |
| Entity<TEntity>(Action<EntityTypeBuilder<TEntity>>) |
Wykonuje konfigurację danego typu jednostki w modelu. Jeśli typ jednostki nie jest jeszcze częścią modelu, zostanie dodany do modelu. |
| FinalizeModel() |
Wymusza przetwarzanie po przetworzeniu modelu, tak aby było gotowe do użycia przez środowisko uruchomieniowe. To przetwarzanie końcowe odbywa się automatycznie w przypadku użycia OnModelCreating(ModelBuilder); ta metoda umożliwia jej jawne uruchomienie w przypadkach, gdy automatyczne wykonywanie nie jest możliwe. |
| HasAnnotation(String, Object) |
Dodaje lub aktualizuje adnotację w modelu. Jeśli adnotacja z kluczem określonym w |
| HasChangeTrackingStrategy(ChangeTrackingStrategy) |
Konfiguruje wartość domyślną ChangeTrackingStrategy , która ma być używana dla tego modelu. Ta strategia wskazuje, w jaki sposób kontekst wykrywa zmiany właściwości dla wystąpienia typu jednostki. |
| HasChangeTrackingStrategy(ChangeTrackingStrategy) |
Konfiguruje wartość domyślną ChangeTrackingStrategy , która ma być używana dla tego modelu. Ta strategia wskazuje, w jaki sposób kontekst wykrywa zmiany właściwości dla wystąpienia typu jednostki. |
| HasEmbeddedDiscriminatorName(String) |
Ustawia nazwę do użycia dla właściwości dyskryminujących osadzonych w dokumentach JSON. Wartość domyślna to "$type". |
| Ignore(String) |
Wyklucza typ jednostki o podanej nazwie z modelu. Ta metoda jest zwykle używana do usuwania typów z modelu, które zostały dodane przez konwencję. |
| Ignore(Type) |
Wyklucza typ jednostki z danym typem CLR z modelu. Ta metoda jest zwykle używana do usuwania typów z modelu, które zostały dodane przez konwencję. |
| Ignore<TEntity>() |
Wyklucza dany typ jednostki z modelu. Ta metoda jest zwykle używana do usuwania typów z modelu, które zostały dodane przez konwencję. |
| Owned(Type) |
Oznacza typ jednostki jako własność. Wszystkie odwołania do tego typu zostaną skonfigurowane jako oddzielne wystąpienia typu własności. |
| Owned<T>() |
Oznacza typ jednostki jako własność. Wszystkie odwołania do tego typu zostaną skonfigurowane jako oddzielne wystąpienia typu własności. |
| Query(Type, Action<EntityTypeBuilder>) |
Przestarzałe.
Wykonuje konfigurację danego typu zapytania w modelu. Jeśli typ zapytania nie jest jeszcze częścią modelu, zostanie dodany do modelu. To przeciążenie umożliwia skonfigurowanie typu zapytania w wierszu w wywołaniu metody zamiast łączenia łańcuchowego po wywołaniu metody Query<TQuery>(). Dzięki temu dodatkowa konfiguracja na poziomie modelu może być łańcuchowa po konfiguracji dla typu zapytania. |
| Query(Type, Action<QueryTypeBuilder>) |
Wykonuje konfigurację danego typu zapytania w modelu. Jeśli typ zapytania nie jest jeszcze częścią modelu, zostanie dodany do modelu. To przeciążenie umożliwia skonfigurowanie typu zapytania w wierszu w wywołaniu metody zamiast łączenia łańcuchowego po wywołaniu metody Query<TQuery>(). Dzięki temu dodatkowa konfiguracja na poziomie modelu może być łańcuchowa po konfiguracji dla typu zapytania. |
| Query(Type) |
Przestarzałe.
Zwraca obiekt, którego można użyć do skonfigurowania danego typu zapytania w modelu. Jeśli typ zapytania nie jest jeszcze częścią modelu, zostanie dodany do modelu. |
| Query<TQuery>() |
Przestarzałe.
Zwraca obiekt, którego można użyć do skonfigurowania danego typu zapytania w modelu. Jeśli typ zapytania nie jest jeszcze częścią modelu, zostanie dodany do modelu. |
| Query<TQuery>(Action<QueryTypeBuilder<TQuery>>) |
Przestarzałe.
Wykonuje konfigurację danego typu zapytania w modelu. Jeśli typ zapytania nie jest jeszcze częścią modelu, zostanie dodany do modelu. To przeciążenie umożliwia skonfigurowanie typu zapytania w wierszu w wywołaniu metody zamiast łączenia łańcuchowego po wywołaniu metody Query<TQuery>(). Dzięki temu dodatkowa konfiguracja na poziomie modelu może być łańcuchowa po konfiguracji dla typu zapytania. |
| SharedTypeEntity(String, Type, Action<EntityTypeBuilder>) |
Zwraca obiekt, który może służyć do konfigurowania danego typu udostępnionego typu jednostki w modelu. |
| SharedTypeEntity(String, Type) |
Zwraca obiekt, który może służyć do konfigurowania danego typu udostępnionego typu jednostki w modelu. |
| SharedTypeEntity<TEntity>(String, Action<EntityTypeBuilder<TEntity>>) |
Zwraca obiekt, który może służyć do konfigurowania danego typu udostępnionego typu jednostki w modelu. |
| SharedTypeEntity<TEntity>(String) |
Zwraca obiekt, który może służyć do konfigurowania danego typu udostępnionego typu jednostki w modelu. |
| UsePropertyAccessMode(PropertyAccessMode) |
PropertyAccessMode Ustawia wartość , która ma być używana dla wszystkich właściwości tego typu jednostki. Domyślnie pole zapasowe, jeśli zostanie znalezione zgodnie z konwencją lub zostało określone, jest używane podczas konstruowania nowych obiektów, zwykle gdy jednostki są odpytywane z bazy danych. Właściwości są używane dla wszystkich innych dostępu. Wywołanie tej metody powoduje zmianę tego zachowania dla wszystkich właściwości w modelu zgodnie z opisem w wyliczeniem PropertyAccessMode . |
| UsePropertyAccessMode(PropertyAccessMode) |
PropertyAccessMode Ustawia wartość , która ma być używana dla wszystkich właściwości tego typu jednostki. |
Jawne implementacje interfejsu
| Nazwisko | Opis |
|---|---|
| IInfrastructure<IConventionModelBuilder>.Instance |
Wewnętrzny ModelBuilder używany do konfigurowania tego modelu. |
| IInfrastructure<InternalModelBuilder>.Instance |
Wewnętrzny ModelBuilder używany do konfigurowania tego modelu. Ta właściwość jest przeznaczona do użycia przez metody rozszerzenia do konfigurowania modelu. Nie jest przeznaczony do użycia w kodzie aplikacji. |
Metody rozszerzania
| Nazwisko | Opis |
|---|---|
| ForSqlServerHasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej SQL Server. |
| ForSqlServerHasSequence(ModelBuilder, String, String, Action<RelationalSequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej SQL Server. |
| ForSqlServerHasSequence(ModelBuilder, String, String) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej SQL Server. |
| ForSqlServerHasSequence(ModelBuilder, Type, String, Action<RelationalSequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej SQL Server. |
| ForSqlServerHasSequence(ModelBuilder, Type, String, String, Action<RelationalSequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej SQL Server. |
| ForSqlServerHasSequence(ModelBuilder, Type, String, String) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej SQL Server. |
| ForSqlServerHasSequence<T>(ModelBuilder, String, Action<RelationalSequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej SQL Server. |
| ForSqlServerHasSequence<T>(ModelBuilder, String, String, Action<RelationalSequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej SQL Server. |
| ForSqlServerHasSequence<T>(ModelBuilder, String, String) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej SQL Server. |
| ForSqlServerUseIdentityColumns(ModelBuilder, Int32, Int32) |
Przestarzałe.
Konfiguruje model tak, aby używał funkcji SQL Server IDENTITY do generowania wartości dla właściwości klucza oznaczonych jako OnAdd, podczas określania wartości docelowej SQL Server. Jest to domyślne zachowanie podczas określania wartości docelowej SQL Server. |
| ForSqlServerUseIdentityColumns(ModelBuilder) |
Konfiguruje model tak, aby używał funkcji SQL Server IDENTITY do generowania wartości dla właściwości klucza oznaczonych jako OnAdd, podczas określania wartości docelowej SQL Server. Jest to domyślne zachowanie podczas określania wartości docelowej SQL Server. |
| ForSqlServerUseSequenceHiLo(ModelBuilder, String, String) |
Przestarzałe.
Konfiguruje model tak, aby używał wzorca hi-lo opartego na sekwencji w celu generowania wartości dla właściwości klucza oznaczonych jako OnAdd, podczas określania wartości docelowej SQL Server. |
| GetInfrastructure<T>(IInfrastructure<T>) |
Pobiera wartość z właściwości ukrytej przy użyciu polecenia IInfrastructure<T>. Ta metoda jest zwykle używana przez dostawców baz danych (i innych rozszerzeń). Zwykle nie jest używany w kodzie aplikacji. |
| HasAutoscaleThroughput(ModelBuilder, Nullable<Int32>) |
Konfiguruje ofertę aprowizowanej przepływności autoskalowania. |
| HasDatabaseMaxSize(ModelBuilder, String) |
Konfiguruje maksymalny rozmiar Azure SQL Database. |
| HasDbFunction(ModelBuilder, MethodInfo, Action<DbFunctionBuilder>) |
Konfiguruje funkcję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasDbFunction(ModelBuilder, MethodInfo) |
Konfiguruje funkcję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasDbFunction<TResult>(ModelBuilder, Expression<Func<TResult>>) |
Konfiguruje funkcję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasDefaultContainer(ModelBuilder, String) |
Konfiguruje domyślną nazwę kontenera, która będzie używana, jeśli żadna nazwa nie jest jawnie skonfigurowana dla typu jednostki. |
| HasDefaultFullTextLanguage(ModelBuilder, String) |
Konfiguruje domyślny język do użycia na potrzeby wyszukiwania pełnotekstowego w zakresie bazy danych. |
| HasDefaultSchema(ModelBuilder, String) |
Konfiguruje domyślny schemat, w ramach którego powinny być tworzone obiekty bazy danych, jeśli żaden schemat nie jest jawnie skonfigurowany. |
| HasDiscriminatorInJsonIds(ModelBuilder, Nullable<Boolean>) |
Zawiera dyskryminującą wartość typu jednostki w wartości "id" w formacie JSON. Było to zachowanie domyślne przed programem EF Core 9. |
| HasFullTextCatalog(ModelBuilder, String) |
Konfiguruje wykaz pełnotekstowy w modelu. |
| HasManualThroughput(ModelBuilder, Nullable<Int32>) |
Konfiguruje ofertę przepływności aprowizowanej ręcznie. |
| HasPerformanceLevel(ModelBuilder, String) |
Konfiguruje poziom wydajności (SERVICE_OBJECTIVE) dla Azure SQL Database jako literał ciągu. |
| HasPerformanceLevelSql(ModelBuilder, String) |
Konfiguruje poziom wydajności (SERVICE_OBJECTIVE) dla Azure SQL Database jako wyrażenie SQL. |
| HasRootDiscriminatorInJsonId(ModelBuilder, Nullable<Boolean>) |
Zawiera dyskryminującą wartość typu jednostki głównej w wartości "id" w formacie JSON. Dzięki temu typy z tym samym kluczem podstawowym mogą być zapisywane w tym samym kontenerze, a jednocześnie zezwalają na używanie elementu "ReadItem" do wyszukiwania nieznanego typu. |
| HasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasSequence(ModelBuilder, String, Action<SequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasSequence(ModelBuilder, String, Action<SequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasSequence(ModelBuilder, String, String, Action<RelationalSequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasSequence(ModelBuilder, String, String, Action<SequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasSequence(ModelBuilder, String, String, Action<SequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasSequence(ModelBuilder, String, String) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasSequence(ModelBuilder, Type, String, Action<RelationalSequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasSequence(ModelBuilder, Type, String, Action<SequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasSequence(ModelBuilder, Type, String, Action<SequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasSequence(ModelBuilder, Type, String, String, Action<RelationalSequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasSequence(ModelBuilder, Type, String, String, Action<SequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasSequence(ModelBuilder, Type, String, String, Action<SequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasSequence(ModelBuilder, Type, String, String) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasSequence<T>(ModelBuilder, String, Action<RelationalSequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasSequence<T>(ModelBuilder, String, Action<SequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasSequence<T>(ModelBuilder, String, Action<SequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasSequence<T>(ModelBuilder, String, String, Action<RelationalSequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasSequence<T>(ModelBuilder, String, String, Action<SequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasSequence<T>(ModelBuilder, String, String, Action<SequenceBuilder>) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasSequence<T>(ModelBuilder, String, String) |
Konfiguruje sekwencję bazy danych podczas określania wartości docelowej relacyjnej bazy danych. |
| HasServiceTier(ModelBuilder, String) |
Konfiguruje warstwę usługi (EDITION) dla Azure SQL Database jako literał ciągu. |
| HasServiceTierSql(ModelBuilder, String) |
Konfiguruje warstwę usługi (EDITION) dla Azure SQL Database jako wyrażenie SQL. |
| HasShadowIds(ModelBuilder, Nullable<Boolean>) |
Wymusza utworzenie modelu w celu zawsze utworzenia właściwości cienia "__id" zamapowanej na "id" w formacie JSON. Było to zachowanie domyślne przed programem EF Core 9.0. |
| UseCollation(ModelBuilder, String) |
Konfiguruje sortowanie bazy danych, które będzie używane przez wszystkie kolumny bez jawnego sortowania. |
| UseHiLo(ModelBuilder, String, String) |
Konfiguruje model tak, aby używał wzorca hi-lo opartego na sekwencji w celu generowania wartości dla właściwości klucza oznaczonych jako OnAdd, podczas określania wartości docelowej SQL Server. |
| UseIdentityColumns(ModelBuilder, Int32, Int32) |
Konfiguruje model tak, aby używał funkcji SQL Server IDENTITY do generowania wartości dla właściwości klucza oznaczonych jako OnAdd, podczas określania wartości docelowej SQL Server. Jest to domyślne zachowanie podczas określania wartości docelowej SQL Server. |
| UseIdentityColumns(ModelBuilder, Int64, Int32) |
Konfiguruje model tak, aby używał funkcji SQL Server IDENTITY do generowania wartości dla właściwości klucza oznaczonych jako OnAdd, podczas określania wartości docelowej SQL Server. Jest to domyślne zachowanie podczas określania wartości docelowej SQL Server. |
| UseKeySequences(ModelBuilder, String, String) |
Konfiguruje model tak, aby używał sekwencji na hierarchię do generowania wartości dla kluczowych właściwości oznaczonych jako OnAdd, podczas określania wartości docelowej SQL Server. |
| UseNamedDefaultConstraints(ModelBuilder, Boolean) |
Konfiguruje model do używania nazwanych ograniczeń domyślnych. |