Udostępnij za pośrednictwem


ModelBuilder Klasa

Definicja

Udostępnia prostą powierzchnię interfejsu API do konfigurowania IMutableModel , która definiuje kształt jednostek, relacje między nimi i sposób mapowania ich na bazę danych.

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

Uwagi

Aby utworzyć model dla kontekstu, możesz użyć ModelBuilder polecenia przesłonięcia OnModelCreating(ModelBuilder) kontekstu pochodnego. Alternatywnie można utworzyć model zewnętrznie i ustawić go na wystąpieniu przekazanym DbContextOptions do konstruktora kontekstu.

Aby uzyskać więcej informacji i przykładów, zobacz Modelowanie typów jednostek i relacji w programie EF Core .

Konstruktory

ModelBuilder()

Inicjuje ModelBuilder nowe wystąpienie klasy bez konwencji.

Ostrzeżenie: konwencje są potrzebne do utworzenia poprawnego modelu.

ModelBuilder(ConventionSet)

Inicjuje ModelBuilder nowe wystąpienie klasy, które będzie stosować zestaw konwencji.

ModelBuilder(ConventionSet, ModelDependencies)

Inicjuje ModelBuilder nowe wystąpienie klasy, które będzie stosować zestaw konwencji.

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 wiedzieć, że może to spowodować błędy aplikacji podczas aktualizowania do nowej wersji programu Entity Framework Core.

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 wiedzieć, że może to spowodować błędy aplikacji podczas aktualizowania do nowej wersji programu Entity Framework Core.

Właściwości

Model

Skonfigurowany model.

Metody

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)

Zwraca obiekt, który może służyć do konfigurowania danego typu jednostki w modelu. Jeśli typ jednostki o podanej nazwie nie jest jeszcze częścią modelu, do modelu zostanie dodany nowy typ jednostki, który nie ma odpowiedniego typu CLR.

Entity(String, Action<EntityTypeBuilder>)

Wykonuje konfigurację danego typu jednostki w modelu. Jeśli typ jednostki o podanej nazwie nie jest jeszcze częścią modelu, do modelu zostanie dodany nowy typ jednostki, który nie ma odpowiedniego typu CLR.

Entity(Type)

Zwraca obiekt, który może służyć do konfigurowania danego typu jednostki w modelu. Jeśli typ jednostki nie jest jeszcze częścią modelu, 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<TEntity>()

Zwraca obiekt, który może służyć do konfigurowania 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. Przetwarzanie po zakończeniu przetwarzania odbywa się automatycznie w przypadku korzystania z metody OnModelCreating(ModelBuilder). Ta metoda umożliwia 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 annotation już istnieje, zostanie zaktualizowana jego wartość.

HasChangeTrackingStrategy(ChangeTrackingStrategy)

Konfiguruje wartość domyślną ChangeTrackingStrategy , która ma być używana dla tego modelu. Ta strategia wskazuje, jak 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, jak kontekst wykrywa zmiany właściwości dla wystąpienia typu jednostki.

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)
Przestarzałe.

Zwraca obiekt, który może służyć do konfigurowania danego typu zapytania w modelu. Jeśli typ zapytania nie jest jeszcze częścią modelu, zostanie dodany do modelu.

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 wywołania metody, a nie łańcuch po wywołaniu metody Query<TQuery>(). Umożliwia to dodatkową konfigurację na poziomie modelu po skonfigurowaniu 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 wywołania metody, a nie łańcuch po wywołaniu metody Query<TQuery>(). Umożliwia to dodatkową konfigurację na poziomie modelu po skonfigurowaniu typu zapytania.

Query<TQuery>()
Przestarzałe.

Zwraca obiekt, który może służyć do konfigurowania 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 wywołania metody, a nie łańcuch po wywołaniu metody Query<TQuery>(). Umożliwia to dodatkową konfigurację na poziomie modelu po skonfigurowaniu typu zapytania.

SharedTypeEntity(String, Type)

Zwraca obiekt, który może służyć do konfigurowania danego typu jednostki typu udostępnionego w modelu.

SharedTypeEntity(String, Type, Action<EntityTypeBuilder>)

Zwraca obiekt, który może służyć do konfigurowania danego typu jednostki typu udostępnionego w modelu.

SharedTypeEntity<TEntity>(String)

Zwraca obiekt, który może służyć do konfigurowania danego typu jednostki typu udostępnionego w modelu.

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

Zwraca obiekt, który może służyć do konfigurowania danego typu jednostki typu udostępnionego w modelu.

UsePropertyAccessMode(PropertyAccessMode)

Ustawia wartość PropertyAccessMode do użycia dla wszystkich właściwości tego typu jednostki.

Domyślnie pole tworzenia kopii zapasowej, jeśli zostanie znalezione zgodnie z konwencją lub zostało określone, jest używane podczas konstruowania nowych obiektów, zazwyczaj gdy jednostki są odpytywane z bazy danych. Właściwości są używane dla wszystkich innych dostępu. Wywołanie tej metody witll zmienia to zachowanie dla wszystkich właściwości w modelu zgodnie z opisem PropertyAccessMode w wyliczenia.

UsePropertyAccessMode(PropertyAccessMode)

Ustawia wartość PropertyAccessMode do użycia dla wszystkich właściwości tego typu jednostki.

Jawne implementacje interfejsu

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żywania przez metody rozszerzeń w celu skonfigurowania modelu. Nie jest ona przeznaczona do użycia w kodzie aplikacji.

Metody rozszerzania

HasAutoscaleThroughput(ModelBuilder, Nullable<Int32>)

Konfiguruje ofertę aprowizowanej przepływności autoskalowania.

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.

HasManualThroughput(ModelBuilder, Nullable<Int32>)

Konfiguruje ofertę ręcznej aprowizowanej przepływności.

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 on używany w kodzie aplikacji.

HasDbFunction(ModelBuilder, MethodInfo)

Konfiguruje funkcję bazy danych podczas określania wartości docelowej relacyjnej bazy danych.

HasDbFunction(ModelBuilder, MethodInfo, Action<DbFunctionBuilder>)

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.

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.

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

Konfiguruje sekwencję bazy danych podczas określania wartości docelowej relacyjnej bazy danych.

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

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<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, Type, String, Action<SequenceBuilder>)

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

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

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

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<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.

UseCollation(ModelBuilder, String)

Konfiguruje sortowanie bazy danych, które będzie używane przez wszystkie kolumny bez jawnego sortowania.

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

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)

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

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

Konfiguruje sekwencję bazy danych 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.

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.

ForSqlServerUseSequenceHiLo(ModelBuilder, String, String)
Przestarzałe.

Konfiguruje model do używania wzorca hi-lo opartego na sekwencji w celu generowania wartości dla kluczowych właściwości oznaczonych jako OnAdd, podczas określania wartości docelowej SQL Server.

HasDatabaseMaxSize(ModelBuilder, String)

Konfiguruje maksymalny rozmiar bazy danych Azure SQL.

HasPerformanceLevel(ModelBuilder, String)

Konfiguruje poziom wydajności (SERVICE_OBJECTIVE) dla bazy danych Azure SQL jako literał ciągu.

HasPerformanceLevelSql(ModelBuilder, String)

Konfiguruje poziom wydajności (SERVICE_OBJECTIVE) dla usługi Azure SQL Database jako wyrażenie SQL.

HasServiceTier(ModelBuilder, String)

Konfiguruje warstwę usługi (EDITION) dla bazy danych Azure SQL jako literał ciągu.

HasServiceTierSql(ModelBuilder, String)

Konfiguruje warstwę usługi (EDITION) dla bazy danych Azure SQL jako wyrażenie SQL.

UseHiLo(ModelBuilder, String, String)

Konfiguruje model do używania wzorca hi-lo opartego na sekwencji w celu generowania wartości dla kluczowych właściwości 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 do używania sekwencji na hierarchię do generowania wartości dla właściwości klucza oznaczonych jako OnAdd, podczas określania wartości docelowej SQL Server.

Dotyczy