ModelBuilder Класс

Определение

Предоставляет простую поверхность API для настройки IMutableModel , которая определяет форму сущностей, связи между ними и способ их сопоставления с базой данных.

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)
Наследование
ModelBuilder
Реализации
IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalModelBuilder> IInfrastructure<IConventionModelBuilder>

Комментарии

Можно использовать для ModelBuilder создания модели для контекста, переопределяя производный OnModelCreating(ModelBuilder) контекст. Кроме того, можно создать модель извне и задать ее в экземпляре, передаваемом DbContextOptions конструктору контекста.

Дополнительные сведения и примеры см. в разделе Моделирование типов сущностей и связей в EF Core .

Конструкторы

ModelBuilder()

Инициализирует новый экземпляр ModelBuilder класса без соглашений.

Предупреждение: для создания правильной модели требуются соглашения.

ModelBuilder(ConventionSet)

Инициализирует новый экземпляр ModelBuilder класса , который будет применять набор соглашений.

ModelBuilder(ConventionSet, ModelDependencies)

Инициализирует новый экземпляр ModelBuilder класса , который будет применять набор соглашений.

ModelBuilder(ConventionSet, ModelDependencies, ModelConfiguration)

Это внутренний API, который поддерживает инфраструктуру Entity Framework Core и не подчиняется тем же стандартам совместимости, что и общедоступные API. Он может быть изменен или удален без уведомления в любом выпуске. Следует использовать его только непосредственно в коде с особой осторожностью и зная, что это может привести к сбоям приложений при обновлении до нового выпуска Entity Framework Core.

ModelBuilder(IMutableModel)
Устаревшие..

Это внутренний API, который поддерживает инфраструктуру Entity Framework Core и не подчиняется тем же стандартам совместимости, что и общедоступные API. Он может быть изменен или удален без уведомления в любом выпуске. Следует использовать его только непосредственно в коде с особой осторожностью и зная, что это может привести к сбоям приложений при обновлении до нового выпуска Entity Framework Core.

Свойства

Model

Настраиваемая модель.

Методы

ApplyConfiguration<TEntity>(IEntityTypeConfiguration<TEntity>)

Применяет конфигурацию, определенную в экземпляре IEntityTypeConfiguration<TEntity> .

ApplyConfiguration<TQuery>(IQueryTypeConfiguration<TQuery>)
Устаревшие..

Применяет конфигурацию, определенную в экземпляре IQueryTypeConfiguration<TQuery> .

ApplyConfigurationsFromAssembly(Assembly, Func<Type,Boolean>)

Применяет конфигурацию из всех IEntityTypeConfiguration<TEntity> экземпляров, определенных в предоставленной сборке.

Entity(String)

Возвращает объект , который можно использовать для настройки заданного типа сущности в модели. Если тип сущности с указанным именем еще не является частью модели, в модель будет добавлен новый тип сущности, не имеющий соответствующего типа CLR.

Entity(String, Action<EntityTypeBuilder>)

Выполняет настройку заданного типа сущности в модели. Если тип сущности с указанным именем еще не является частью модели, в модель будет добавлен новый тип сущности, не имеющий соответствующего типа CLR.

Entity(Type)

Возвращает объект , который можно использовать для настройки заданного типа сущности в модели. Если тип сущности еще не является частью модели, он будет добавлен в модель.

Entity(Type, Action<EntityTypeBuilder>)

Выполняет настройку заданного типа сущности в модели. Если тип сущности еще не является частью модели, он будет добавлен в модель.

Entity<TEntity>()

Возвращает объект , который можно использовать для настройки заданного типа сущности в модели. Если тип сущности еще не является частью модели, он будет добавлен в модель.

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

Выполняет настройку заданного типа сущности в модели. Если тип сущности еще не является частью модели, он будет добавлен в модель.

FinalizeModel()

Принудительно выполняет постобработку модели таким образом, чтобы она была готова к использованию средой выполнения. Эта постобработка выполняется автоматически при использовании OnModelCreating(ModelBuilder); этот метод позволяет выполнять его явным образом в случаях, когда автоматическое выполнение невозможно.

HasAnnotation(String, Object)

Добавляет или обновляет заметку в модели. Если заметка с ключом, указанным в , annotation уже существует, ее значение будет обновлено.

HasChangeTrackingStrategy(ChangeTrackingStrategy)

Настраивает значение по умолчанию ChangeTrackingStrategy , используемое для этой модели. Эта стратегия показывает, как контекст обнаруживает изменения свойств для экземпляра типа сущности.

HasChangeTrackingStrategy(ChangeTrackingStrategy)

Настраивает значение по умолчанию ChangeTrackingStrategy , используемое для этой модели. Эта стратегия показывает, как контекст обнаруживает изменения свойств для экземпляра типа сущности.

Ignore(String)

Исключает тип сущности с заданным именем из модели. Этот метод обычно используется для удаления типов из модели, добавленных в соответствии с соглашением.

Ignore(Type)

Исключает тип сущности с заданным типом CLR из модели. Этот метод обычно используется для удаления типов из модели, добавленных в соответствии с соглашением.

Ignore<TEntity>()

Исключает данный тип сущности из модели. Этот метод обычно используется для удаления типов из модели, добавленных в соответствии с соглашением.

Owned(Type)

Помечает тип сущности как принадлежащий. Все ссылки на этот тип будут настроены как отдельные экземпляры принадлежащих типов.

Owned<T>()

Помечает тип сущности как принадлежащий. Все ссылки на этот тип будут настроены как отдельные экземпляры принадлежащих типов.

Query(Type)
Устаревшие..

Возвращает объект, который можно использовать для настройки заданного типа запроса в модели. Если тип запроса еще не является частью модели, он будет добавлен в модель.

Query(Type, Action<EntityTypeBuilder>)
Устаревшие..

Выполняет настройку заданного типа запроса в модели. Если тип запроса еще не является частью модели, он будет добавлен в модель.

Эта перегрузка позволяет настраивать тип запроса в строке вызова метода, а не цепочки после вызова Query<TQuery>(). Это позволяет создать цепочку дополнительной конфигурации на уровне модели после настройки для типа запроса.

Query(Type, Action<QueryTypeBuilder>)

Выполняет настройку заданного типа запроса в модели. Если тип запроса еще не является частью модели, он будет добавлен в модель.

Эта перегрузка позволяет настраивать тип запроса в строке вызова метода, а не цепочки после вызова Query<TQuery>(). Это позволяет создать цепочку дополнительной конфигурации на уровне модели после настройки для типа запроса.

Query<TQuery>()
Устаревшие..

Возвращает объект, который можно использовать для настройки заданного типа запроса в модели. Если тип запроса еще не является частью модели, он будет добавлен в модель.

Query<TQuery>(Action<QueryTypeBuilder<TQuery>>)
Устаревшие..

Выполняет настройку заданного типа запроса в модели. Если тип запроса еще не является частью модели, он будет добавлен в модель.

Эта перегрузка позволяет настраивать тип запроса в строке вызова метода, а не цепочки после вызова Query<TQuery>(). Это позволяет создать цепочку дополнительной конфигурации на уровне модели после настройки для типа запроса.

SharedTypeEntity(String, Type)

Возвращает объект, который можно использовать для настройки заданного типа сущности общего типа в модели.

SharedTypeEntity(String, Type, Action<EntityTypeBuilder>)

Возвращает объект, который можно использовать для настройки заданного типа сущности общего типа в модели.

SharedTypeEntity<TEntity>(String)

Возвращает объект, который можно использовать для настройки заданного типа сущности общего типа в модели.

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

Возвращает объект, который можно использовать для настройки заданного типа сущности общего типа в модели.

UsePropertyAccessMode(PropertyAccessMode)

Задает для PropertyAccessMode использования для всех свойств этого типа сущности.

По умолчанию резервное поле, если оно найдено по соглашению или указано, используется при создании новых объектов, как правило, при запросе сущностей из базы данных. Свойства используются для всех других обращений. Вызов этого метода изменяет поведение для всех свойств модели, как описано в перечислении PropertyAccessMode .

UsePropertyAccessMode(PropertyAccessMode)

Задает для PropertyAccessMode использования для всех свойств этого типа сущности.

Явные реализации интерфейса

IInfrastructure<IConventionModelBuilder>.Instance

Внутренний ModelBuilder объект, используемый для настройки этой модели.

IInfrastructure<InternalModelBuilder>.Instance

Внутренний ModelBuilder объект, используемый для настройки этой модели.

Это свойство предназначено для использования методами расширения для настройки модели. Он не предназначен для использования в коде приложения.

Методы расширения

HasAutoscaleThroughput(ModelBuilder, Nullable<Int32>)

Настраивает предложение автомасштабирования подготовленной пропускной способности.

HasDefaultContainer(ModelBuilder, String)

Настраивает имя контейнера по умолчанию, которое будет использоваться, если имя не настроено явно для типа сущности.

HasManualThroughput(ModelBuilder, Nullable<Int32>)

Настраивает предложение подготовленной пропускной способности вручную.

GetInfrastructure<T>(IInfrastructure<T>)

Возвращает значение из свойства, скрытого с помощью IInfrastructure<T>.

Этот метод обычно используется поставщиками баз данных (и другими расширениями). Как правило, он не используется в коде приложения.

HasDbFunction(ModelBuilder, MethodInfo)

Настраивает функцию базы данных при выборе реляционной базы данных.

HasDbFunction(ModelBuilder, MethodInfo, Action<DbFunctionBuilder>)

Настраивает функцию базы данных при выборе реляционной базы данных.

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

Настраивает функцию базы данных при выборе реляционной базы данных.

HasDefaultSchema(ModelBuilder, String)

Настраивает схему по умолчанию, в которую должны создаваться объекты базы данных, если схема не настроена явным образом.

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

Настраивает последовательность баз данных при выборе реляционной базы данных.

HasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

Настраивает последовательность баз данных при выборе реляционной базы данных.

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

Настраивает последовательность баз данных при выборе реляционной базы данных.

HasSequence(ModelBuilder, String, String)

Настраивает последовательность баз данных при выборе реляционной базы данных.

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

Настраивает последовательность баз данных при выборе реляционной базы данных.

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

Настраивает последовательность баз данных при выборе реляционной базы данных.

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

Настраивает последовательность баз данных при выборе реляционной базы данных.

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

Настраивает последовательность баз данных при выборе реляционной базы данных.

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

Настраивает последовательность баз данных при выборе реляционной базы данных.

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

Настраивает последовательность баз данных при выборе реляционной базы данных.

HasSequence(ModelBuilder, Type, String, String)

Настраивает последовательность баз данных при выборе реляционной базы данных.

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

Настраивает последовательность баз данных при выборе реляционной базы данных.

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

Настраивает последовательность баз данных при выборе реляционной базы данных.

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

Настраивает последовательность баз данных при выборе реляционной базы данных.

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

Настраивает последовательность баз данных при выборе реляционной базы данных.

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

Настраивает последовательность базы данных при нацеливание на реляционную базу данных.

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

Настраивает последовательность базы данных при нацеливание на реляционную базу данных.

HasSequence<T>(ModelBuilder, String, String)

Настраивает последовательность базы данных при нацеливание на реляционную базу данных.

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

Настраивает последовательность базы данных при нацеливание на реляционную базу данных.

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

Настраивает последовательность базы данных при нацеливание на реляционную базу данных.

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

Настраивает последовательность базы данных при нацеливание на реляционную базу данных.

UseCollation(ModelBuilder, String)

Настраивает параметры сортировки базы данных, которые будут использоваться всеми столбцами без явных параметров сортировки.

ForSqlServerHasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

Настраивает последовательность базы данных при нацеливание на SQL Server.

ForSqlServerHasSequence(ModelBuilder, String, String)

Настраивает последовательность базы данных при нацеливание на SQL Server.

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

Настраивает последовательность базы данных при нацеливание на SQL Server.

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

Настраивает последовательность базы данных при нацеливание на SQL Server.

ForSqlServerHasSequence(ModelBuilder, Type, String, String)

Настраивает последовательность базы данных при нацеливание на SQL Server.

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

Настраивает последовательность базы данных при нацеливание на SQL Server.

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

Настраивает последовательность базы данных при нацеливание на SQL Server.

ForSqlServerHasSequence<T>(ModelBuilder, String, String)

Настраивает последовательность базы данных при нацеливание на SQL Server.

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

Настраивает последовательность базы данных при нацеливание на SQL Server.

ForSqlServerUseIdentityColumns(ModelBuilder)

Настраивает модель для использования функции SQL Server IDENTITY для создания значений для ключевых свойств, помеченных как OnAdd, при нацеливание на SQL Server. Это поведение по умолчанию при нацеливание на SQL Server.

ForSqlServerUseIdentityColumns(ModelBuilder, Int32, Int32)
Устаревшие..

Настраивает модель для использования функции SQL Server IDENTITY для создания значений для ключевых свойств, помеченных как OnAdd, при нацеливание на SQL Server. Это поведение по умолчанию при нацеливание на SQL Server.

ForSqlServerUseSequenceHiLo(ModelBuilder, String, String)
Устаревшие..

Настраивает модель для использования шаблона hi-lo на основе последовательностей для создания значений для ключевых свойств, помеченных как OnAdd, при нацеливание на SQL Server.

HasDatabaseMaxSize(ModelBuilder, String)

Настраивает максимальный размер базы данных Azure SQL.

HasPerformanceLevel(ModelBuilder, String)

Настраивает уровень производительности (SERVICE_OBJECTIVE) для базы данных Azure SQL в качестве строкового литерала.

HasPerformanceLevelSql(ModelBuilder, String)

Настраивает уровень производительности (SERVICE_OBJECTIVE) для базы данных Azure SQL в качестве выражения SQL.

HasServiceTier(ModelBuilder, String)

Настраивает уровень служб (EDITION) для базы данных Azure SQL в качестве строкового литерала.

HasServiceTierSql(ModelBuilder, String)

Настраивает уровень служб (EDITION) для базы данных Azure SQL в качестве выражения SQL.

UseHiLo(ModelBuilder, String, String)

Настраивает модель для использования шаблона hi-lo на основе последовательностей для создания значений для ключевых свойств, помеченных как OnAdd, при нацеливание на SQL Server.

UseIdentityColumns(ModelBuilder, Int32, Int32)

Настраивает модель для использования функции SQL Server IDENTITY для создания значений для ключевых свойств, помеченных как OnAdd, при нацеливание на SQL Server. Это поведение по умолчанию при нацеливание на SQL Server.

UseIdentityColumns(ModelBuilder, Int64, Int32)

Настраивает модель для использования функции SQL Server IDENTITY для создания значений для ключевых свойств, помеченных как OnAdd, при нацеливание на SQL Server. Это поведение по умолчанию при нацеливание на SQL Server.

UseKeySequences(ModelBuilder, String, String)

Настраивает модель для использования последовательности для каждой иерархии для создания значений для ключевых свойств, помеченных как OnAdd, при нацеливание на SQL Server.

Применяется к