Lenguaje

ModelBuilder Clase

Definición

Proporciona una superficie de API sencilla para configurar un IMutableModel que define la forma de las entidades, las relaciones entre ellas y cómo se asignan a la base de datos.

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)
Herencia
ModelBuilder
Atributos
Implementaciones
IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalModelBuilder> IInfrastructure<IConventionModelBuilder>

Comentarios

Puede usar ModelBuilder para construir un modelo para un contexto invalidando OnModelCreating(ModelBuilder) en el contexto derivado. Como alternativa, puede crear el modelo externamente y establecerlo en una DbContextOptions instancia que se pasa al constructor de contexto.

Consulte Modelado de tipos de entidad y relaciones en EF Core para obtener más información y ejemplos.

Constructores

Nombre Description
ModelBuilder()

Inicializa una nueva instancia de la ModelBuilder clase sin convenciones.

Advertencia: se necesitan convenciones para crear un modelo correcto.

ModelBuilder(ConventionSet, ModelDependencies, ModelConfiguration)

Se trata de una API interna que admite la infraestructura de Entity Framework Core y no está sujeta a los mismos estándares de compatibilidad que las API públicas. Se puede cambiar o quitar sin previo aviso en ninguna versión. Solo debe usarlo directamente en el código con extrema precaución y saber que hacerlo puede dar lugar a errores de aplicación al actualizar a una nueva versión de Entity Framework Core.

ModelBuilder(ConventionSet, ModelDependencies)

Inicializa una nueva instancia de la ModelBuilder clase que aplicará un conjunto de convenciones.

ModelBuilder(ConventionSet)

Inicializa una nueva instancia de la ModelBuilder clase que aplicará un conjunto de convenciones.

ModelBuilder(IMutableModel)
Obsoletos.

Se trata de una API interna que admite la infraestructura de Entity Framework Core y no está sujeta a los mismos estándares de compatibilidad que las API públicas. Se puede cambiar o quitar sin previo aviso en ninguna versión. Solo debe usarlo directamente en el código con extrema precaución y saber que hacerlo puede dar lugar a errores de aplicación al actualizar a una nueva versión de Entity Framework Core.

Propiedades

Nombre Description
Model

Modelo que se va a configurar.

Métodos

Nombre Description
ApplyConfiguration<TEntity>(IEntityTypeConfiguration<TEntity>)

Aplica la configuración definida en una IEntityTypeConfiguration<TEntity> instancia de .

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

Aplica la configuración definida en una IQueryTypeConfiguration<TQuery> instancia de .

ApplyConfigurationsFromAssembly(Assembly, Func<Type,Boolean>)

Aplica la configuración de todas las IEntityTypeConfiguration<TEntity> instancias definidas en el ensamblado proporcionado.

Entity(String, Action<EntityTypeBuilder>)

Realiza la configuración de un tipo de entidad determinado en el modelo. Si un tipo de entidad con el nombre proporcionado aún no forma parte del modelo, se agregará un nuevo tipo de entidad que no tenga un tipo CLR correspondiente al modelo.

Entity(String)

Devuelve un objeto que se puede usar para configurar un tipo de entidad determinado en el modelo. Si un tipo de entidad con el nombre proporcionado aún no forma parte del modelo, se agregará un nuevo tipo de entidad que no tenga un tipo CLR correspondiente al modelo.

Entity(Type, Action<EntityTypeBuilder>)

Realiza la configuración de un tipo de entidad determinado en el modelo. Si el tipo de entidad aún no forma parte del modelo, se agregará al modelo.

Entity(Type)

Devuelve un objeto que se puede usar para configurar un tipo de entidad determinado en el modelo. Si el tipo de entidad aún no forma parte del modelo, se agregará al modelo.

Entity<TEntity>()

Devuelve un objeto que se puede usar para configurar un tipo de entidad determinado en el modelo. Si el tipo de entidad aún no forma parte del modelo, se agregará al modelo.

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

Realiza la configuración de un tipo de entidad determinado en el modelo. Si el tipo de entidad aún no forma parte del modelo, se agregará al modelo.

FinalizeModel()

Fuerza el posprocesamiento en el modelo de modo que esté listo para su uso por parte del tiempo de ejecución. Este procesamiento posterior se produce automáticamente cuando se usa OnModelCreating(ModelBuilder); este método permite que se ejecute explícitamente en los casos en los que la ejecución automática no sea posible.

HasAnnotation(String, Object)

Agrega o actualiza una anotación en el modelo. Si ya existe una anotación con la clave especificada en annotation , se actualizará su valor.

HasChangeTrackingStrategy(ChangeTrackingStrategy)

Configura el valor predeterminado ChangeTrackingStrategy que se usará para este modelo. Esta estrategia indica cómo el contexto detecta cambios en las propiedades de una instancia de un tipo de entidad.

HasChangeTrackingStrategy(ChangeTrackingStrategy)

Configura el valor predeterminado ChangeTrackingStrategy que se usará para este modelo. Esta estrategia indica cómo el contexto detecta cambios en las propiedades de una instancia de un tipo de entidad.

HasEmbeddedDiscriminatorName(String)

Establece el nombre que se va a usar para las propiedades de discriminador insertadas en documentos JSON. El valor predeterminado es "$type".

Ignore(String)

Excluye un tipo de entidad con el nombre especificado del modelo. Este método se usa normalmente para quitar tipos del modelo que se agregaron por convención.

Ignore(Type)

Excluye un tipo de entidad con el tipo CLR determinado del modelo. Este método se usa normalmente para quitar tipos del modelo que se agregaron por convención.

Ignore<TEntity>()

Excluye el tipo de entidad especificado del modelo. Este método se usa normalmente para quitar tipos del modelo que se agregaron por convención.

Owned(Type)

Marca un tipo de entidad como propiedad. Todas las referencias a este tipo se configurarán como instancias de tipo propiedad independientes.

Owned<T>()

Marca un tipo de entidad como propiedad. Todas las referencias a este tipo se configurarán como instancias de tipo propiedad independientes.

Query(Type, Action<EntityTypeBuilder>)
Obsoletos.

Realiza la configuración de un tipo de consulta determinado en el modelo. Si el tipo de consulta aún no forma parte del modelo, se agregará al modelo.

Esta sobrecarga permite realizar la configuración del tipo de consulta en línea en la llamada al método en lugar de encadenarse después de una llamada a Query<TQuery>(). Esto permite que la configuración adicional en el nivel de modelo se encadene después de la configuración del tipo de consulta.

Query(Type, Action<QueryTypeBuilder>)

Realiza la configuración de un tipo de consulta determinado en el modelo. Si el tipo de consulta aún no forma parte del modelo, se agregará al modelo.

Esta sobrecarga permite realizar la configuración del tipo de consulta en línea en la llamada al método en lugar de encadenarse después de una llamada a Query<TQuery>(). Esto permite que la configuración adicional en el nivel de modelo se encadene después de la configuración del tipo de consulta.

Query(Type)
Obsoletos.

Devuelve un objeto que se puede usar para configurar un tipo de consulta determinado en el modelo. Si el tipo de consulta aún no forma parte del modelo, se agregará al modelo.

Query<TQuery>()
Obsoletos.

Devuelve un objeto que se puede usar para configurar un tipo de consulta determinado en el modelo. Si el tipo de consulta aún no forma parte del modelo, se agregará al modelo.

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

Realiza la configuración de un tipo de consulta determinado en el modelo. Si el tipo de consulta aún no forma parte del modelo, se agregará al modelo.

Esta sobrecarga permite realizar la configuración del tipo de consulta en línea en la llamada al método en lugar de encadenarse después de una llamada a Query<TQuery>(). Esto permite que la configuración adicional en el nivel de modelo se encadene después de la configuración del tipo de consulta.

SharedTypeEntity(String, Type, Action<EntityTypeBuilder>)

Devuelve un objeto que se puede usar para configurar un tipo de entidad de tipo compartido determinado en el modelo.

SharedTypeEntity(String, Type)

Devuelve un objeto que se puede usar para configurar un tipo de entidad de tipo compartido determinado en el modelo.

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

Devuelve un objeto que se puede usar para configurar un tipo de entidad de tipo compartido determinado en el modelo.

SharedTypeEntity<TEntity>(String)

Devuelve un objeto que se puede usar para configurar un tipo de entidad de tipo compartido determinado en el modelo.

UsePropertyAccessMode(PropertyAccessMode)

Establece el objeto PropertyAccessMode que se va a usar para todas las propiedades de este tipo de entidad.

De forma predeterminada, el campo de respaldo, si se encuentra uno por convención o se ha especificado, se usa cuando se construyen nuevos objetos, normalmente cuando se consultan entidades desde la base de datos. Las propiedades se usan para todos los demás accesos. Al llamar a este método, cambie ese comportamiento para todas las propiedades del modelo, tal como se describe en la PropertyAccessMode enumeración.

UsePropertyAccessMode(PropertyAccessMode)

Establece el objeto PropertyAccessMode que se va a usar para todas las propiedades de este tipo de entidad.

Implementaciones de interfaz explícitas

Nombre Description
IInfrastructure<IConventionModelBuilder>.Instance

El elemento interno ModelBuilder que se usa para configurar este modelo.

IInfrastructure<InternalModelBuilder>.Instance

El elemento interno ModelBuilder que se usa para configurar este modelo.

Esta propiedad está pensada para su uso por métodos de extensión para configurar el modelo. No está pensado para usarse en el código de aplicación.

Métodos de extensión

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

Configura una secuencia de base de datos al dirigirse a SQL Server.

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

Configura una secuencia de base de datos al dirigirse a SQL Server.

ForSqlServerHasSequence(ModelBuilder, String, String)

Configura una secuencia de base de datos al dirigirse a SQL Server.

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

Configura una secuencia de base de datos al dirigirse a SQL Server.

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

Configura una secuencia de base de datos al dirigirse a SQL Server.

ForSqlServerHasSequence(ModelBuilder, Type, String, String)

Configura una secuencia de base de datos al dirigirse a SQL Server.

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

Configura una secuencia de base de datos al dirigirse a SQL Server.

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

Configura una secuencia de base de datos al dirigirse a SQL Server.

ForSqlServerHasSequence<T>(ModelBuilder, String, String)

Configura una secuencia de base de datos al dirigirse a SQL Server.

ForSqlServerUseIdentityColumns(ModelBuilder, Int32, Int32)
Obsoletos.

Configura el modelo para usar la característica SQL Server IDENTITY para generar valores para las propiedades de clave marcadas como OnAdd, al dirigirse a SQL Server. Este es el comportamiento predeterminado al dirigirse a SQL Server.

ForSqlServerUseIdentityColumns(ModelBuilder)

Configura el modelo para usar la característica SQL Server IDENTITY para generar valores para las propiedades de clave marcadas como OnAdd, al dirigirse a SQL Server. Este es el comportamiento predeterminado al dirigirse a SQL Server.

ForSqlServerUseSequenceHiLo(ModelBuilder, String, String)
Obsoletos.

Configura el modelo para usar un patrón de hi-lo basado en secuencia para generar valores para las propiedades de clave marcadas como OnAdd, al dirigirse a SQL Server.

GetInfrastructure<T>(IInfrastructure<T>)

Obtiene el valor de una propiedad que se oculta mediante IInfrastructure<T>.

Normalmente, este método lo usan los proveedores de bases de datos (y otras extensiones). Por lo general, no se usa en el código de aplicación.

HasAutoscaleThroughput(ModelBuilder, Nullable<Int32>)

Configura la oferta de rendimiento aprovisionado de escalabilidad automática.

HasDatabaseMaxSize(ModelBuilder, String)

Configura el tamaño máximo para Azure SQL Database.

HasDbFunction(ModelBuilder, MethodInfo, Action<DbFunctionBuilder>)

Configura una función de base de datos al establecer como destino una base de datos relacional.

HasDbFunction(ModelBuilder, MethodInfo)

Configura una función de base de datos al establecer como destino una base de datos relacional.

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

Configura una función de base de datos al establecer como destino una base de datos relacional.

HasDefaultContainer(ModelBuilder, String)

Configura el nombre de contenedor predeterminado que se usará si no hay ningún nombre configurado explícitamente para un tipo de entidad.

HasDefaultFullTextLanguage(ModelBuilder, String)

Configura un idioma predeterminado que se usará para la búsqueda de texto completo en el ámbito de la base de datos.

HasDefaultSchema(ModelBuilder, String)

Configura el esquema predeterminado en el que se deben crear objetos de base de datos, si no se configura explícitamente ningún esquema.

HasDiscriminatorInJsonIds(ModelBuilder, Nullable<Boolean>)

Incluye el valor discriminador del tipo de entidad en el valor json "id". Este era el comportamiento predeterminado antes de EF Core 9.

HasFullTextCatalog(ModelBuilder, String)

Configura un catálogo de texto completo en el modelo.

HasManualThroughput(ModelBuilder, Nullable<Int32>)

Configura la oferta de rendimiento aprovisionada manual.

HasPerformanceLevel(ModelBuilder, String)

Configura el nivel de rendimiento (SERVICE_OBJECTIVE) para Azure SQL Database como literal de cadena.

HasPerformanceLevelSql(ModelBuilder, String)

Configura el nivel de rendimiento (SERVICE_OBJECTIVE) para Azure SQL Database como expresión SQL.

HasRootDiscriminatorInJsonId(ModelBuilder, Nullable<Boolean>)

Incluye el valor discriminador del tipo de entidad raíz en el valor json "id". Esto permite que los tipos con la misma clave principal se guarden en el mismo contenedor, al tiempo que permiten usar "ReadItem" para búsquedas de un tipo desconocido.

HasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

Configura una secuencia de base de datos cuando se dirige a una base de datos relacional.

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

Configura una secuencia de base de datos cuando se dirige a una base de datos relacional.

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

Configura una secuencia de base de datos cuando se dirige a una base de datos relacional.

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

Configura una secuencia de base de datos cuando se dirige a una base de datos relacional.

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

Configura una secuencia de base de datos cuando se dirige a una base de datos relacional.

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

Configura una secuencia de base de datos cuando se dirige a una base de datos relacional.

HasSequence(ModelBuilder, String, String)

Configura una secuencia de base de datos cuando se dirige a una base de datos relacional.

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

Configura una secuencia de base de datos cuando se dirige a una base de datos relacional.

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

Configura una secuencia de base de datos cuando se dirige a una base de datos relacional.

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

Configura una secuencia de base de datos cuando se dirige a una base de datos relacional.

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

Configura una secuencia de base de datos cuando se dirige a una base de datos relacional.

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

Configura una secuencia de base de datos cuando se dirige a una base de datos relacional.

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

Configura una secuencia de base de datos cuando se dirige a una base de datos relacional.

HasSequence(ModelBuilder, Type, String, String)

Configura una secuencia de base de datos cuando se dirige a una base de datos relacional.

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

Configura una secuencia de base de datos cuando se dirige a una base de datos relacional.

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

Configura una secuencia de base de datos cuando se dirige a una base de datos relacional.

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

Configura una secuencia de base de datos cuando se dirige a una base de datos relacional.

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

Configura una secuencia de base de datos cuando se dirige a una base de datos relacional.

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

Configura una secuencia de base de datos cuando se dirige a una base de datos relacional.

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

Configura una secuencia de base de datos cuando se dirige a una base de datos relacional.

HasSequence<T>(ModelBuilder, String, String)

Configura una secuencia de base de datos cuando se dirige a una base de datos relacional.

HasServiceTier(ModelBuilder, String)

Configura el nivel de servicio (EDITION) para Azure SQL Database como literal de cadena.

HasServiceTierSql(ModelBuilder, String)

Configura el nivel de servicio (EDITION) para Azure SQL Database como expresión SQL.

HasShadowIds(ModelBuilder, Nullable<Boolean>)

Obliga a la creación de modelos a crear siempre una propiedad de sombra "__id" asignada al "id" JSON. Este era el comportamiento predeterminado antes de EF Core 9.0.

UseCollation(ModelBuilder, String)

Configura la intercalación de la base de datos, que se usará en todas las columnas sin una intercalación explícita.

UseHiLo(ModelBuilder, String, String)

Configura el modelo para usar un patrón de hi-lo basado en secuencia para generar valores para las propiedades de clave marcadas como OnAdd, al dirigirse a SQL Server.

UseIdentityColumns(ModelBuilder, Int32, Int32)

Configura el modelo para usar la característica SQL Server IDENTITY para generar valores para las propiedades de clave marcadas como OnAdd, al dirigirse a SQL Server. Este es el comportamiento predeterminado al dirigirse a SQL Server.

UseIdentityColumns(ModelBuilder, Int64, Int32)

Configura el modelo para usar la característica SQL Server IDENTITY para generar valores para las propiedades de clave marcadas como OnAdd, al dirigirse a SQL Server. Este es el comportamiento predeterminado al dirigirse a SQL Server.

UseKeySequences(ModelBuilder, String, String)

Configura el modelo para usar una secuencia por jerarquía para generar valores para las propiedades de clave marcadas como OnAdd, al dirigirse a SQL Server.

UseNamedDefaultConstraints(ModelBuilder, Boolean)

Configura el modelo para usar restricciones predeterminadas con nombre.

Se aplica a