Compartir a través de


ModelBuilder Clase

Definición

Proporciona una superficie de API sencilla para configurar un IMutableModel objeto 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>
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)
Herencia
ModelBuilder
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

ModelBuilder()

Inicializa una nueva instancia de la ModelBuilder clase sin convenciones.

Advertencia: se necesitan convenciones para crear un modelo correcto.

ModelBuilder(ConventionSet)

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

ModelBuilder(ConventionSet, ModelDependencies)

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

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 provocar errores en la aplicación al actualizar a una nueva versión de Entity Framework Core.

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 provocar errores en la aplicación al actualizar a una nueva versión de Entity Framework Core.

Propiedades

Model

Modelo que se va a configurar.

Métodos

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)

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(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(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(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<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 casos en los que no es posible la ejecución automática.

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 los 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 los cambios en las propiedades de una instancia de un tipo de entidad.

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 un 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)
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(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 que la configuración del tipo de consulta se realice 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 que la configuración del tipo de consulta se realice 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<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 que la configuración del tipo de consulta se realice 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)

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

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<TEntity>(String)

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.

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

IInfrastructure<IConventionModelBuilder>.Instance

Elemento interno ModelBuilder que se usa para configurar este modelo.

IInfrastructure<InternalModelBuilder>.Instance

Elemento interno ModelBuilder que se usa para configurar este modelo.

Esta propiedad está pensada para que la usen los métodos de extensión para configurar el modelo. No está diseñado para usarse en el código de la aplicación.

Métodos de extensión

HasAutoscaleThroughput(ModelBuilder, Nullable<Int32>)

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

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.

HasManualThroughput(ModelBuilder, Nullable<Int32>)

Configura la oferta de rendimiento aprovisionada manualmente.

GetInfrastructure<T>(IInfrastructure<T>)

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

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

HasDbFunction(ModelBuilder, MethodInfo)

Configura una función de base de datos cuando el destino es una base de datos relacional.

HasDbFunction(ModelBuilder, MethodInfo, Action<DbFunctionBuilder>)

Configura una función de base de datos cuando el destino es una base de datos relacional.

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

Configura una función de base de datos cuando el destino es una base de datos relacional.

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.

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

Configura una secuencia de base de datos cuando el destino es una base de datos relacional.

HasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

Configura una secuencia de base de datos cuando el destino es una base de datos relacional.

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

Configura una secuencia de base de datos cuando el destino es una base de datos relacional.

HasSequence(ModelBuilder, String, String)

Configura una secuencia de base de datos cuando el destino es una base de datos relacional.

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

Configura una secuencia de base de datos cuando el destino es una base de datos relacional.

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

Configura una secuencia de base de datos cuando el destino es una base de datos relacional.

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

Configura una secuencia de base de datos cuando el destino es una base de datos relacional.

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

Configura una secuencia de base de datos cuando el destino es una base de datos relacional.

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

Configura una secuencia de base de datos cuando el destino es una base de datos relacional.

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

Configura una secuencia de base de datos cuando el destino es una base de datos relacional.

HasSequence(ModelBuilder, Type, String, String)

Configura una secuencia de base de datos cuando el destino es una base de datos relacional.

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

Configura una secuencia de base de datos cuando el destino es una base de datos relacional.

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

Configura una secuencia de base de datos cuando el destino es una base de datos relacional.

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

Configura una secuencia de base de datos cuando el destino es una base de datos relacional.

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

Configura una secuencia de base de datos cuando el destino es una base de datos relacional.

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

Configura una secuencia de base de datos cuando el destino es una base de datos relacional.

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

Configura una secuencia de base de datos cuando el destino es una base de datos relacional.

HasSequence<T>(ModelBuilder, String, String)

Configura una secuencia de base de datos cuando el destino es una base de datos relacional.

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

Configura una secuencia de base de datos cuando el destino es una base de datos relacional.

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

Configura una secuencia de base de datos cuando el destino es una base de datos relacional.

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

Configura una secuencia de base de datos cuando el destino es una base de datos relacional.

UseCollation(ModelBuilder, String)

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

ForSqlServerHasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

Configura una secuencia de base de datos cuando el destino es SQL Server.

ForSqlServerHasSequence(ModelBuilder, String, String)

Configura una secuencia de base de datos cuando el destino es SQL Server.

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

Configura una secuencia de base de datos cuando el destino es SQL Server.

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

Configura una secuencia de base de datos cuando el destino es SQL Server.

ForSqlServerHasSequence(ModelBuilder, Type, String, String)

Configura una secuencia de base de datos cuando el destino es SQL Server.

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

Configura una secuencia de base de datos cuando el destino es SQL Server.

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

Configura una secuencia de base de datos cuando el destino es SQL Server.

ForSqlServerHasSequence<T>(ModelBuilder, String, String)

Configura una secuencia de base de datos cuando el destino es SQL Server.

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

Configura una secuencia de base de datos cuando el destino es 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, cuando el destino es SQL Server. Este es el comportamiento predeterminado cuando el destino es 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, cuando el destino es SQL Server. Este es el comportamiento predeterminado cuando el destino es SQL Server.

ForSqlServerUseSequenceHiLo(ModelBuilder, String, String)
Obsoletos.

Configura el modelo para que use un patrón hi-lo basado en secuencia para generar valores para las propiedades de clave marcadas como OnAdd, cuando el destino es SQL Server.

HasDatabaseMaxSize(ModelBuilder, String)

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

HasPerformanceLevel(ModelBuilder, String)

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

HasPerformanceLevelSql(ModelBuilder, String)

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

HasServiceTier(ModelBuilder, String)

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

HasServiceTierSql(ModelBuilder, String)

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

UseHiLo(ModelBuilder, String, String)

Configura el modelo para que use un patrón hi-lo basado en secuencia para generar valores para las propiedades de clave marcadas como OnAdd, cuando el destino es 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, cuando el destino es SQL Server. Este es el comportamiento predeterminado cuando el destino es 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, cuando el destino es SQL Server. Este es el comportamiento predeterminado cuando el destino es SQL Server.

UseKeySequences(ModelBuilder, String, String)

Configura el modelo para usar una secuencia por jerarquía para generar valores para las propiedades clave marcadas como OnAdd, cuando el destino es SQL Server.

Se aplica a