ModelBuilder Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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>
[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)
- Herança
-
ModelBuilder
- Atributos
- 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) seu contexto derivado. Como alternativa, você pode criar o modelo externamente e defini-lo em uma DbContextOptions instância que é passada para o construtor de contexto.
Consulte os tipos e relações de entidade de modelagem no EF Core para obter mais informações e exemplos.
Construtores
| Nome | Descrição |
|---|---|
| ModelBuilder() |
Inicializa uma nova instância da ModelBuilder classe sem convenções. Aviso: as convenções são necessárias para criar um modelo correto. |
| ModelBuilder(ConventionSet, ModelDependencies, ModelConfiguration) |
Essa é uma API interna que dá suporte à infraestrutura de 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 qualquer versão. Você só deve usá-lo diretamente em seu código com extrema cautela e saber que fazer isso pode resultar em falhas de aplicativo ao atualizar para uma nova versão Entity Framework Core. |
| ModelBuilder(ConventionSet, ModelDependencies) |
Inicializa uma nova instância da ModelBuilder classe que aplicará um conjunto de convenções. |
| ModelBuilder(ConventionSet) |
Inicializa uma nova instância da ModelBuilder classe que aplicará um conjunto de convenções. |
| ModelBuilder(IMutableModel) |
Obsoleto.
Essa é uma API interna que dá suporte à infraestrutura de 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 qualquer versão. Você só deve usá-lo diretamente em seu código com extrema cautela e saber que fazer isso pode resultar em falhas de aplicativo ao atualizar para uma nova versão Entity Framework Core. |
Propriedades
| Nome | Descrição |
|---|---|
| Model |
O modelo que está sendo configurado. |
Métodos
| Nome | Descrição |
|---|---|
| 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, 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(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(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(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<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 em 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 já |
| 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. |
| HasEmbeddedDiscriminatorName(String) |
Define o nome a ser usado para propriedades discriminatórias inseridas em documentos JSON. O padrão é "$type". |
| 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, 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(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<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, Action<EntityTypeBuilder>) |
Retorna um objeto que pode ser usado para configurar um determinado tipo de entidade de tipo compartilhado no modelo. |
| SharedTypeEntity(String, Type) |
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. |
| SharedTypeEntity<TEntity>(String) |
Retorna um objeto que pode ser usado para configurar um determinado tipo de entidade de tipo compartilhado no modelo. |
| UsePropertyAccessMode(PropertyAccessMode) |
Define o PropertyAccessMode uso para todas as propriedades desse tipo de entidade. Por padrão, o campo de backup, se for encontrado por convenção ou tiver sido especificado, será usado quando novos objetos são 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 de witll altera esse comportamento para todas as propriedades no modelo, conforme descrito na PropertyAccessMode enumeração. |
| UsePropertyAccessMode(PropertyAccessMode) |
Define o PropertyAccessMode uso para todas as propriedades desse tipo de entidade. |
Implantações explícitas de interface
| Nome | Descrição |
|---|---|
| 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
| Nome | Descrição |
|---|---|
| ForSqlServerHasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>) |
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, String, String) |
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, 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<T>(ModelBuilder, String, Action<RelationalSequenceBuilder>) |
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. |
| ForSqlServerHasSequence<T>(ModelBuilder, String, String) |
Configura uma sequência de banco de dados 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. |
| 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. |
| ForSqlServerUseSequenceHiLo(ModelBuilder, String, String) |
Obsoleto.
Configura o modelo para usar um padrão de hi-lo baseado em sequência para gerar valores para propriedades de chave marcadas comoOnAdd, ao direcionar SQL Server. |
| 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. |
| HasAutoscaleThroughput(ModelBuilder, Nullable<Int32>) |
Configura a oferta de taxa de transferência provisionada de dimensionamento automático. |
| HasDatabaseMaxSize(ModelBuilder, String) |
Configura o tamanho máximo para Banco de Dados SQL do Azure. |
| HasDbFunction(ModelBuilder, MethodInfo, Action<DbFunctionBuilder>) |
Configura uma função de banco de dados ao direcionar um banco de dados relacional. |
| HasDbFunction(ModelBuilder, MethodInfo) |
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. |
| 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. |
| HasDefaultFullTextLanguage(ModelBuilder, String) |
Configura um idioma padrão a ser usado para pesquisa de texto completo no escopo do banco de dados. |
| 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. |
| HasDiscriminatorInJsonIds(ModelBuilder, Nullable<Boolean>) |
Inclui o valor discriminatório do tipo de entidade no valor "id" JSON. Esse era o comportamento padrão antes do EF Core 9. |
| HasFullTextCatalog(ModelBuilder, String) |
Configura um catálogo de texto completo no modelo. |
| HasManualThroughput(ModelBuilder, Nullable<Int32>) |
Configura a oferta manual de taxa de transferência provisionada. |
| HasPerformanceLevel(ModelBuilder, String) |
Configura o nível de desempenho (SERVICE_OBJECTIVE) para Banco de Dados SQL do Azure como um literal de cadeia de caracteres. |
| HasPerformanceLevelSql(ModelBuilder, String) |
Configura o nível de desempenho (SERVICE_OBJECTIVE) para Banco de Dados SQL do Azure como uma expressão SQL. |
| HasRootDiscriminatorInJsonId(ModelBuilder, Nullable<Boolean>) |
Inclui o valor discriminatório do tipo de entidade raiz no valor "id" JSON. Isso permite que tipos com a mesma chave primária sejam salvos no mesmo contêiner, permitindo que "ReadItem" seja usado para pesquisas de um tipo desconhecido. |
| 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, 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, String, 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, 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, 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(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) |
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, 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. |
| 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) |
Configura uma sequência de banco de dados ao direcionar um banco de dados relacional. |
| HasServiceTier(ModelBuilder, String) |
Configura a camada de serviço (EDITION) para Banco de Dados SQL do Azure como um literal de cadeia de caracteres. |
| HasServiceTierSql(ModelBuilder, String) |
Configura a camada de serviço (EDITION) para Banco de Dados SQL do Azure como uma expressão SQL. |
| HasShadowIds(ModelBuilder, Nullable<Boolean>) |
Força a criação de modelos a sempre criar uma propriedade de sombra "__id" mapeada para a "id" JSON. Esse era o comportamento padrão antes do EF Core 9.0. |
| UseCollation(ModelBuilder, String) |
Configura a ordenação de banco de dados, que será usada por todas as colunas sem uma ordenação explícita. |
| UseHiLo(ModelBuilder, String, String) |
Configura o modelo para usar um padrão de hi-lo baseado em sequência para gerar valores para propriedades de chave marcadas comoOnAdd, 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. |
| UseNamedDefaultConstraints(ModelBuilder, Boolean) |
Configura o modelo para usar restrições padrão nomeadas. |