Partilhar via


ModelBuilder Classe

Definição

Fornece uma superfície de API simples para configurar um IMutableModel que define a forma de suas entidades, as relações entre elas e como elas são mapeadas para o banco de dados.

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)
Herança
ModelBuilder
Implementações
IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalModelBuilder> IInfrastructure<IConventionModelBuilder>

Comentários

Você pode usar ModelBuilder para construir um modelo para um contexto substituindo OnModelCreating(ModelBuilder) em seu contexto derivado. Como alternativa, você pode criar o modelo externamente e defini-lo em uma DbContextOptions instância passada para o construtor de contexto.

Consulte Modelagem de tipos de entidade e relações no EF Core para obter mais informações e exemplos.

Construtores

ModelBuilder()

Inicializa uma nova instância da ModelBuilder classe sem convenções.

Aviso: são necessárias convenções para criar um modelo correto.

ModelBuilder(ConventionSet)

Inicializa uma nova instância da ModelBuilder classe que aplicará um conjunto de convenções.

ModelBuilder(ConventionSet, ModelDependencies)

Inicializa uma nova instância da ModelBuilder classe que aplicará um conjunto de convenções.

ModelBuilder(ConventionSet, ModelDependencies, ModelConfiguration)

Essa é uma API interna que dá suporte à infraestrutura do Entity Framework Core e não está sujeita aos mesmos padrões de compatibilidade que as APIs públicas. Ele pode ser alterado ou removido sem aviso prévio em nenhuma versão. Você só deve usá-lo diretamente em seu código com extrema cautela e saber que isso pode resultar em falhas de aplicativo ao atualizar para uma nova versão do Entity Framework Core.

ModelBuilder(IMutableModel)
Obsoleto.

Essa é uma API interna que dá suporte à infraestrutura do Entity Framework Core e não está sujeita aos mesmos padrões de compatibilidade que as APIs públicas. Ele pode ser alterado ou removido sem aviso prévio em nenhuma versão. Você só deve usá-lo diretamente em seu código com extrema cautela e saber que isso pode resultar em falhas de aplicativo ao atualizar para uma nova versão do Entity Framework Core.

Propriedades

Model

O modelo que está sendo configurado.

Métodos

ApplyConfiguration<TEntity>(IEntityTypeConfiguration<TEntity>)

Aplica a configuração definida em uma IEntityTypeConfiguration<TEntity> instância.

ApplyConfiguration<TQuery>(IQueryTypeConfiguration<TQuery>)
Obsoleto.

Aplica a configuração definida em uma IQueryTypeConfiguration<TQuery> instância.

ApplyConfigurationsFromAssembly(Assembly, Func<Type,Boolean>)

Aplica a configuração de todas as IEntityTypeConfiguration<TEntity> instâncias definidas no assembly fornecido.

Entity(String)

Retorna um objeto que pode ser usado para configurar um determinado tipo de entidade no modelo. Se um tipo de entidade com o nome fornecido ainda não fizer parte do modelo, um novo tipo de entidade que não tenha um tipo CLR correspondente será adicionado ao modelo.

Entity(String, Action<EntityTypeBuilder>)

Executa a configuração de um determinado tipo de entidade no modelo. Se um tipo de entidade com o nome fornecido ainda não fizer parte do modelo, um novo tipo de entidade que não tenha um tipo CLR correspondente será adicionado ao modelo.

Entity(Type)

Retorna um objeto que pode ser usado para configurar um determinado tipo de entidade no modelo. Se o tipo de entidade ainda não fizer parte do modelo, ele será adicionado ao modelo.

Entity(Type, Action<EntityTypeBuilder>)

Executa a configuração de um determinado tipo de entidade no modelo. Se o tipo de entidade ainda não fizer parte do modelo, ele será adicionado ao modelo.

Entity<TEntity>()

Retorna um objeto que pode ser usado para configurar um determinado tipo de entidade no modelo. Se o tipo de entidade ainda não fizer parte do modelo, ele será adicionado ao modelo.

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

Executa a configuração de um determinado tipo de entidade no modelo. Se o tipo de entidade ainda não fizer parte do modelo, ele será adicionado ao modelo.

FinalizeModel()

Força o pós-processamento no modelo de modo que ele esteja pronto para uso pelo runtime. Esse pós-processamento ocorre automaticamente ao usar OnModelCreating(ModelBuilder); esse método permite que ele seja executado explicitamente nos casos em que a execução automática não é possível.

HasAnnotation(String, Object)

Adiciona ou atualiza uma anotação no modelo. Se uma anotação com a chave especificada em annotation já existir, seu valor será atualizado.

HasChangeTrackingStrategy(ChangeTrackingStrategy)

Configura o padrão ChangeTrackingStrategy a ser usado para esse modelo. Essa estratégia indica como o contexto detecta alterações nas propriedades de uma instância de um tipo de entidade.

HasChangeTrackingStrategy(ChangeTrackingStrategy)

Configura o padrão ChangeTrackingStrategy a ser usado para esse modelo. Essa estratégia indica como o contexto detecta alterações nas propriedades de uma instância de um tipo de entidade.

Ignore(String)

Exclui um tipo de entidade com o nome fornecido do modelo. Esse método normalmente é usado para remover tipos do modelo que foram adicionados por convenção.

Ignore(Type)

Exclui um tipo de entidade com determinado tipo CLR do modelo. Esse método normalmente é usado para remover tipos do modelo que foram adicionados por convenção.

Ignore<TEntity>()

Exclui o tipo de entidade fornecido do modelo. Esse método normalmente é usado para remover tipos do modelo que foram adicionados por convenção.

Owned(Type)

Marca um tipo de entidade como propriedade. Todas as referências a esse tipo serão configuradas como instâncias de tipo de propriedade separadas.

Owned<T>()

Marca um tipo de entidade como propriedade. Todas as referências a esse tipo serão configuradas como instâncias de tipo de propriedade separadas.

Query(Type)
Obsoleto.

Retorna um objeto que pode ser usado para configurar um determinado tipo de consulta no modelo. Se o tipo de consulta ainda não fizer parte do modelo, ele será adicionado ao modelo.

Query(Type, Action<EntityTypeBuilder>)
Obsoleto.

Executa a configuração de um determinado tipo de consulta no modelo. Se o tipo de consulta ainda não fizer parte do modelo, ele será adicionado ao modelo.

Essa sobrecarga permite que a configuração do tipo de consulta seja feita em linha na chamada de método em vez de ser encadeada após uma chamada para Query<TQuery>(). Isso permite que a configuração adicional no nível do modelo seja encadeada após a configuração do tipo de consulta.

Query(Type, Action<QueryTypeBuilder>)

Executa a configuração de um determinado tipo de consulta no modelo. Se o tipo de consulta ainda não fizer parte do modelo, ele será adicionado ao modelo.

Essa sobrecarga permite que a configuração do tipo de consulta seja feita em linha na chamada de método em vez de ser encadeada após uma chamada para Query<TQuery>(). Isso permite que a configuração adicional no nível do modelo seja encadeada após a configuração do tipo de consulta.

Query<TQuery>()
Obsoleto.

Retorna um objeto que pode ser usado para configurar um determinado tipo de consulta no modelo. Se o tipo de consulta ainda não fizer parte do modelo, ele será adicionado ao modelo.

Query<TQuery>(Action<QueryTypeBuilder<TQuery>>)
Obsoleto.

Executa a configuração de um determinado tipo de consulta no modelo. Se o tipo de consulta ainda não fizer parte do modelo, ele será adicionado ao modelo.

Essa sobrecarga permite que a configuração do tipo de consulta seja feita em linha na chamada de método em vez de ser encadeada após uma chamada para Query<TQuery>(). Isso permite que a configuração adicional no nível do modelo seja encadeada após a configuração do tipo de consulta.

SharedTypeEntity(String, Type)

Retorna um objeto que pode ser usado para configurar um determinado tipo de entidade de tipo compartilhado no modelo.

SharedTypeEntity(String, Type, Action<EntityTypeBuilder>)

Retorna um objeto que pode ser usado para configurar um determinado tipo de entidade de tipo compartilhado no modelo.

SharedTypeEntity<TEntity>(String)

Retorna um objeto que pode ser usado para configurar um determinado tipo de entidade de tipo compartilhado no modelo.

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

Retorna um objeto que pode ser usado para configurar um determinado tipo de entidade de tipo compartilhado no modelo.

UsePropertyAccessMode(PropertyAccessMode)

Define o PropertyAccessMode a ser usado para todas as propriedades desse tipo de entidade.

Por padrão, o campo de suporte, se for encontrado por convenção ou tiver sido especificado, será usado quando novos objetos forem construídos, normalmente quando entidades são consultadas do banco de dados. As propriedades são usadas para todos os outros acessos. Chamar esse método witll altera esse comportamento para todas as propriedades no modelo, conforme descrito na PropertyAccessMode enumeração .

UsePropertyAccessMode(PropertyAccessMode)

Define o PropertyAccessMode a ser usado para todas as propriedades desse tipo de entidade.

Implantações explícitas de interface

IInfrastructure<IConventionModelBuilder>.Instance

O interno ModelBuilder que está sendo usado para configurar esse modelo.

IInfrastructure<InternalModelBuilder>.Instance

O interno ModelBuilder que está sendo usado para configurar esse modelo.

Essa propriedade destina-se ao uso por métodos de extensão para configurar o modelo. Ele não se destina a ser usado no código do aplicativo.

Métodos de Extensão

HasAutoscaleThroughput(ModelBuilder, Nullable<Int32>)

Configura a oferta de taxa de transferência provisionada de dimensionamento automático.

HasDefaultContainer(ModelBuilder, String)

Configura o nome de contêiner padrão que será usado se nenhum nome estiver configurado explicitamente para um tipo de entidade.

HasManualThroughput(ModelBuilder, Nullable<Int32>)

Configura a oferta manual de taxa de transferência provisionada.

GetInfrastructure<T>(IInfrastructure<T>)

Obtém o valor de uma propriedade que está sendo ocultada usando IInfrastructure<T>.

Esse método normalmente é usado por provedores de banco de dados (e outras extensões). Geralmente, ele não é usado no código do aplicativo.

HasDbFunction(ModelBuilder, MethodInfo)

Configura uma função de banco de dados ao direcionar um banco de dados relacional.

HasDbFunction(ModelBuilder, MethodInfo, Action<DbFunctionBuilder>)

Configura uma função de banco de dados ao direcionar um banco de dados relacional.

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

Configura uma função de banco de dados ao direcionar um banco de dados relacional.

HasDefaultSchema(ModelBuilder, String)

Configura o esquema padrão no qual os objetos de banco de dados devem ser criados, se nenhum esquema estiver configurado explicitamente.

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

Configura uma sequência de banco de dados ao direcionar um banco de dados relacional.

HasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

Configura uma sequência de banco de dados ao direcionar um banco de dados relacional.

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

Configura uma sequência de banco de dados ao direcionar um banco de dados relacional.

HasSequence(ModelBuilder, String, String)

Configura uma sequência de banco de dados ao direcionar um banco de dados relacional.

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

Configura uma sequência de banco de dados ao direcionar um banco de dados relacional.

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

Configura uma sequência de banco de dados ao direcionar um banco de dados relacional.

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

Configura uma sequência de banco de dados ao direcionar um banco de dados relacional.

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

Configura uma sequência de banco de dados ao direcionar um banco de dados relacional.

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

Configura uma sequência de banco de dados ao direcionar um banco de dados relacional.

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

Configura uma sequência de banco de dados ao direcionar um banco de dados relacional.

HasSequence(ModelBuilder, Type, String, String)

Configura uma sequência de banco de dados ao direcionar um banco de dados relacional.

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

Configura uma sequência de banco de dados ao direcionar um banco de dados relacional.

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

Configura uma sequência de banco de dados ao direcionar um banco de dados relacional.

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

Configura uma sequência de banco de dados ao direcionar um banco de dados relacional.

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

Configura uma sequência de banco de dados ao direcionar um banco de dados relacional.

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

Configura uma sequência de banco de dados ao direcionar um banco de dados relacional.

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

Configura uma sequência de banco de dados ao direcionar um banco de dados relacional.

HasSequence<T>(ModelBuilder, String, String)

Configura uma sequência de banco de dados ao direcionar um banco de dados relacional.

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

Configura uma sequência de banco de dados ao direcionar um banco de dados relacional.

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

Configura uma sequência de banco de dados ao direcionar um banco de dados relacional.

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

Configura uma sequência de banco de dados ao direcionar um banco de dados relacional.

UseCollation(ModelBuilder, String)

Configura a ordenação de banco de dados, que será usada por todas as colunas sem uma ordenação explícita.

ForSqlServerHasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

Configura uma sequência de banco de dados ao direcionar SQL Server.

ForSqlServerHasSequence(ModelBuilder, String, String)

Configura uma sequência de banco de dados ao direcionar SQL Server.

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

Configura uma sequência de banco de dados ao direcionar SQL Server.

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

Configura uma sequência de banco de dados ao direcionar SQL Server.

ForSqlServerHasSequence(ModelBuilder, Type, String, String)

Configura uma sequência de banco de dados ao direcionar SQL Server.

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

Configura uma sequência de banco de dados ao direcionar SQL Server.

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

Configura uma sequência de banco de dados ao direcionar SQL Server.

ForSqlServerHasSequence<T>(ModelBuilder, String, String)

Configura uma sequência de banco de dados ao direcionar SQL Server.

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

Configura uma sequência de banco de dados ao direcionar SQL Server.

ForSqlServerUseIdentityColumns(ModelBuilder)

Configura o modelo para usar o recurso SQL Server IDENTITY para gerar valores para propriedades de chave marcadas como OnAdd, ao direcionar SQL Server. Esse é o comportamento padrão ao direcionar SQL Server.

ForSqlServerUseIdentityColumns(ModelBuilder, Int32, Int32)
Obsoleto.

Configura o modelo para usar o recurso SQL Server IDENTITY para gerar valores para propriedades de chave marcadas como OnAdd, ao direcionar SQL Server. Esse é o comportamento padrão ao direcionar SQL Server.

ForSqlServerUseSequenceHiLo(ModelBuilder, String, String)
Obsoleto.

Configura o modelo para usar um padrão hi-lo baseado em sequência para gerar valores para propriedades de chave marcadas como OnAdd, ao direcionar SQL Server.

HasDatabaseMaxSize(ModelBuilder, String)

Configura o tamanho máximo para SQL do Azure Banco de Dados.

HasPerformanceLevel(ModelBuilder, String)

Configura o nível de desempenho (SERVICE_OBJECTIVE) para SQL do Azure Banco de Dados como um literal de cadeia de caracteres.

HasPerformanceLevelSql(ModelBuilder, String)

Configura o nível de desempenho (SERVICE_OBJECTIVE) para o Banco de Dados SQL do Azure como uma expressão SQL.

HasServiceTier(ModelBuilder, String)

Configura a camada de serviço (EDITION) para SQL do Azure Banco de Dados como um literal de cadeia de caracteres.

HasServiceTierSql(ModelBuilder, String)

Configura a camada de serviço (EDITION) para SQL do Azure Banco de Dados como uma expressão SQL.

UseHiLo(ModelBuilder, String, String)

Configura o modelo para usar um padrão hi-lo baseado em sequência para gerar valores para propriedades de chave marcadas como OnAdd, ao direcionar SQL Server.

UseIdentityColumns(ModelBuilder, Int32, Int32)

Configura o modelo para usar o recurso SQL Server IDENTITY para gerar valores para propriedades de chave marcadas como OnAdd, ao direcionar SQL Server. Esse é o comportamento padrão ao direcionar SQL Server.

UseIdentityColumns(ModelBuilder, Int64, Int32)

Configura o modelo para usar o recurso SQL Server IDENTITY para gerar valores para propriedades de chave marcadas como OnAdd, ao direcionar SQL Server. Esse é o comportamento padrão ao direcionar SQL Server.

UseKeySequences(ModelBuilder, String, String)

Configura o modelo para usar uma sequência por hierarquia para gerar valores para propriedades de chave marcadas como OnAdd, ao direcionar SQL Server.

Aplica-se a