ModelBuilder Classe

Définition

Fournit une surface d’API simple pour la configuration d’un IMutableModel qui définit la forme de vos entités, les relations entre elles et la façon dont elles sont mappées à la base de données.

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)
Héritage
ModelBuilder
Implémente
IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalModelBuilder> IInfrastructure<IConventionModelBuilder>

Remarques

Vous pouvez utiliser ModelBuilder pour construire un modèle pour un contexte en OnModelCreating(ModelBuilder) remplaçant votre contexte dérivé. Vous pouvez également créer le modèle en externe et le définir sur un DbContextOptions instance passé au constructeur de contexte.

Pour plus d’informations et d’exemples , consultez Modélisation des types d’entités et des relations dans EF Core .

Constructeurs

ModelBuilder()

Initialise une nouvelle instance de la ModelBuilder classe sans conventions.

Avertissement : des conventions sont nécessaires pour générer un modèle correct.

ModelBuilder(ConventionSet)

Initialise une nouvelle instance de la ModelBuilder classe qui appliquera un ensemble de conventions.

ModelBuilder(ConventionSet, ModelDependencies)

Initialise une nouvelle instance de la ModelBuilder classe qui appliquera un ensemble de conventions.

ModelBuilder(ConventionSet, ModelDependencies, ModelConfiguration)

Il s’agit d’une API interne qui prend en charge l’infrastructure Entity Framework Core et qui n’est pas soumise aux mêmes normes de compatibilité que les API publiques. Il peut être modifié ou supprimé sans préavis dans n’importe quelle version. Vous devez uniquement l’utiliser directement dans votre code avec une extrême prudence et sachant que cela peut entraîner des échecs d’application lors de la mise à jour vers une nouvelle version d’Entity Framework Core.

ModelBuilder(IMutableModel)
Obsolète.

Il s’agit d’une API interne qui prend en charge l’infrastructure Entity Framework Core et qui n’est pas soumise aux mêmes normes de compatibilité que les API publiques. Il peut être modifié ou supprimé sans préavis dans n’importe quelle version. Vous devez uniquement l’utiliser directement dans votre code avec une extrême prudence et sachant que cela peut entraîner des échecs d’application lors de la mise à jour vers une nouvelle version d’Entity Framework Core.

Propriétés

Model

Modèle en cours de configuration.

Méthodes

ApplyConfiguration<TEntity>(IEntityTypeConfiguration<TEntity>)

Applique la configuration définie dans un IEntityTypeConfiguration<TEntity> instance.

ApplyConfiguration<TQuery>(IQueryTypeConfiguration<TQuery>)
Obsolète.

Applique la configuration définie dans un IQueryTypeConfiguration<TQuery> instance.

ApplyConfigurationsFromAssembly(Assembly, Func<Type,Boolean>)

Applique la configuration à partir de toutes les IEntityTypeConfiguration<TEntity> instances définies dans l’assembly fourni.

Entity(String)

Retourne un objet qui peut être utilisé pour configurer un type d’entité donné dans le modèle. Si un type d’entité avec le nom fourni ne fait pas déjà partie du modèle, un nouveau type d’entité qui n’a pas de type CLR correspondant est ajouté au modèle.

Entity(String, Action<EntityTypeBuilder>)

Effectue la configuration d’un type d’entité donné dans le modèle. Si un type d’entité avec le nom fourni ne fait pas déjà partie du modèle, un nouveau type d’entité qui n’a pas de type CLR correspondant est ajouté au modèle.

Entity(Type)

Retourne un objet qui peut être utilisé pour configurer un type d’entité donné dans le modèle. Si le type d’entité ne fait pas déjà partie du modèle, il sera ajouté au modèle.

Entity(Type, Action<EntityTypeBuilder>)

Effectue la configuration d’un type d’entité donné dans le modèle. Si le type d’entité ne fait pas déjà partie du modèle, il sera ajouté au modèle.

Entity<TEntity>()

Retourne un objet qui peut être utilisé pour configurer un type d’entité donné dans le modèle. Si le type d’entité ne fait pas déjà partie du modèle, il sera ajouté au modèle.

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

Effectue la configuration d’un type d’entité donné dans le modèle. Si le type d’entité ne fait pas déjà partie du modèle, il sera ajouté au modèle.

FinalizeModel()

Force le post-traitement sur le modèle afin qu’il soit prêt à être utilisé par le runtime. Ce post-traitement se produit automatiquement lors de l’utilisation OnModelCreating(ModelBuilder); cette méthode permet de l’exécuter explicitement dans les cas où l’exécution automatique n’est pas possible.

HasAnnotation(String, Object)

Ajoute ou met à jour une annotation sur le modèle. Si une annotation avec la clé spécifiée dans annotation existe déjà, sa valeur est mise à jour.

HasChangeTrackingStrategy(ChangeTrackingStrategy)

Configure la valeur par défaut ChangeTrackingStrategy à utiliser pour ce modèle. Cette stratégie indique comment le contexte détecte les modifications apportées aux propriétés d’un instance d’un type d’entité.

HasChangeTrackingStrategy(ChangeTrackingStrategy)

Configure la valeur par défaut ChangeTrackingStrategy à utiliser pour ce modèle. Cette stratégie indique comment le contexte détecte les modifications apportées aux propriétés d’un instance d’un type d’entité.

Ignore(String)

Exclut du modèle un type d’entité portant le nom donné. Cette méthode est généralement utilisée pour supprimer des types du modèle qui ont été ajoutés par convention.

Ignore(Type)

Exclut du modèle un type d’entité avec un type CLR donné. Cette méthode est généralement utilisée pour supprimer des types du modèle qui ont été ajoutés par convention.

Ignore<TEntity>()

Exclut le type d’entité donné du modèle. Cette méthode est généralement utilisée pour supprimer des types du modèle qui ont été ajoutés par convention.

Owned(Type)

Marque un type d’entité comme appartenant à. Toutes les références à ce type seront configurées en tant qu’instances de type détenues distinctes.

Owned<T>()

Marque un type d’entité comme appartenant à. Toutes les références à ce type seront configurées en tant qu’instances de type détenues distinctes.

Query(Type)
Obsolète.

Retourne un objet qui peut être utilisé pour configurer un type de requête donné dans le modèle. Si le type de requête ne fait pas déjà partie du modèle, il est ajouté au modèle.

Query(Type, Action<EntityTypeBuilder>)
Obsolète.

Effectue la configuration d’un type de requête donné dans le modèle. Si le type de requête ne fait pas déjà partie du modèle, il est ajouté au modèle.

Cette surcharge permet de configurer le type de requête en ligne dans l’appel de méthode plutôt que d’être chaîné après un appel à Query<TQuery>(). Cela permet de chaîner une configuration supplémentaire au niveau du modèle après la configuration pour le type de requête.

Query(Type, Action<QueryTypeBuilder>)

Effectue la configuration d’un type de requête donné dans le modèle. Si le type de requête ne fait pas déjà partie du modèle, il est ajouté au modèle.

Cette surcharge permet de configurer le type de requête en ligne dans l’appel de méthode plutôt que d’être chaîné après un appel à Query<TQuery>(). Cela permet de chaîner une configuration supplémentaire au niveau du modèle après la configuration pour le type de requête.

Query<TQuery>()
Obsolète.

Retourne un objet qui peut être utilisé pour configurer un type de requête donné dans le modèle. Si le type de requête ne fait pas déjà partie du modèle, il est ajouté au modèle.

Query<TQuery>(Action<QueryTypeBuilder<TQuery>>)
Obsolète.

Effectue la configuration d’un type de requête donné dans le modèle. Si le type de requête ne fait pas déjà partie du modèle, il est ajouté au modèle.

Cette surcharge permet de configurer le type de requête en ligne dans l’appel de méthode plutôt que d’être chaîné après un appel à Query<TQuery>(). Cela permet de chaîner une configuration supplémentaire au niveau du modèle après la configuration pour le type de requête.

SharedTypeEntity(String, Type)

Retourne un objet qui peut être utilisé pour configurer un type d’entité de type partagé donné dans le modèle.

SharedTypeEntity(String, Type, Action<EntityTypeBuilder>)

Retourne un objet qui peut être utilisé pour configurer un type d’entité de type partagé donné dans le modèle.

SharedTypeEntity<TEntity>(String)

Retourne un objet qui peut être utilisé pour configurer un type d’entité de type partagé donné dans le modèle.

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

Retourne un objet qui peut être utilisé pour configurer un type d’entité de type partagé donné dans le modèle.

UsePropertyAccessMode(PropertyAccessMode)

Définit le PropertyAccessMode à utiliser pour toutes les propriétés de ce type d’entité.

Par défaut, le champ de stockage, s’il est trouvé par convention ou a été spécifié, est utilisé lorsque de nouveaux objets sont construits, généralement lorsque des entités sont interrogées à partir de la base de données. Les propriétés sont utilisées pour tous les autres accès. L’appel de cette méthode permet de modifier ce comportement pour toutes les propriétés du modèle, comme décrit dans l’énumération PropertyAccessMode .

UsePropertyAccessMode(PropertyAccessMode)

Définit le PropertyAccessMode à utiliser pour toutes les propriétés de ce type d’entité.

Implémentations d’interfaces explicites

IInfrastructure<IConventionModelBuilder>.Instance

Interne ModelBuilder utilisé pour configurer ce modèle.

IInfrastructure<InternalModelBuilder>.Instance

Interne ModelBuilder utilisé pour configurer ce modèle.

Cette propriété est destinée à être utilisée par les méthodes d’extension pour configurer le modèle. Il n’est pas destiné à être utilisé dans le code d’application.

Méthodes d’extension

HasAutoscaleThroughput(ModelBuilder, Nullable<Int32>)

Configure l’offre de débit provisionné à la mise à l’échelle automatique.

HasDefaultContainer(ModelBuilder, String)

Configure le nom de conteneur par défaut qui sera utilisé si aucun nom n’est configuré explicitement pour un type d’entité.

HasManualThroughput(ModelBuilder, Nullable<Int32>)

Configure l’offre de débit approvisionné manuellement.

GetInfrastructure<T>(IInfrastructure<T>)

Obtient la valeur d’une propriété masquée à l’aide de IInfrastructure<T>.

Cette méthode est généralement utilisée par les fournisseurs de base de données (et d’autres extensions). Il n’est généralement pas utilisé dans le code d’application.

HasDbFunction(ModelBuilder, MethodInfo)

Configure une fonction de base de données lors du ciblage d’une base de données relationnelle.

HasDbFunction(ModelBuilder, MethodInfo, Action<DbFunctionBuilder>)

Configure une fonction de base de données lors du ciblage d’une base de données relationnelle.

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

Configure une fonction de base de données lors du ciblage d’une base de données relationnelle.

HasDefaultSchema(ModelBuilder, String)

Configure le schéma par défaut dans lequel les objets de base de données doivent être créés, si aucun schéma n’est configuré explicitement.

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

Configure une séquence de base de données lors du ciblage d’une base de données relationnelle.

HasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

Configure une séquence de base de données lors du ciblage d’une base de données relationnelle.

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

Configure une séquence de base de données lors du ciblage d’une base de données relationnelle.

HasSequence(ModelBuilder, String, String)

Configure une séquence de base de données lors du ciblage d’une base de données relationnelle.

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

Configure une séquence de base de données lors du ciblage d’une base de données relationnelle.

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

Configure une séquence de base de données lors du ciblage d’une base de données relationnelle.

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

Configure une séquence de base de données lors du ciblage d’une base de données relationnelle.

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

Configure une séquence de base de données lors du ciblage d’une base de données relationnelle.

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

Configure une séquence de base de données lors du ciblage d’une base de données relationnelle.

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

Configure une séquence de base de données lors du ciblage d’une base de données relationnelle.

HasSequence(ModelBuilder, Type, String, String)

Configure une séquence de base de données lors du ciblage d’une base de données relationnelle.

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

Configure une séquence de base de données lors du ciblage d’une base de données relationnelle.

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

Configure une séquence de base de données lors du ciblage d’une base de données relationnelle.

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

Configure une séquence de base de données lors du ciblage d’une base de données relationnelle.

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

Configure une séquence de base de données lors du ciblage d’une base de données relationnelle.

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

Configure une séquence de base de données lors du ciblage d’une base de données relationnelle.

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

Configure une séquence de base de données lors du ciblage d’une base de données relationnelle.

HasSequence<T>(ModelBuilder, String, String)

Configure une séquence de base de données lors du ciblage d’une base de données relationnelle.

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

Configure une séquence de base de données lors du ciblage d’une base de données relationnelle.

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

Configure une séquence de base de données lors du ciblage d’une base de données relationnelle.

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

Configure une séquence de base de données lors du ciblage d’une base de données relationnelle.

UseCollation(ModelBuilder, String)

Configure le classement de base de données, qui sera utilisé par toutes les colonnes sans classement explicite.

ForSqlServerHasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

Configure une séquence de base de données lors du ciblage de SQL Server.

ForSqlServerHasSequence(ModelBuilder, String, String)

Configure une séquence de base de données lors du ciblage de SQL Server.

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

Configure une séquence de base de données lors du ciblage de SQL Server.

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

Configure une séquence de base de données lors du ciblage de SQL Server.

ForSqlServerHasSequence(ModelBuilder, Type, String, String)

Configure une séquence de base de données lors du ciblage de SQL Server.

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

Configure une séquence de base de données lors du ciblage de SQL Server.

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

Configure une séquence de base de données lors du ciblage de SQL Server.

ForSqlServerHasSequence<T>(ModelBuilder, String, String)

Configure une séquence de base de données lors du ciblage de SQL Server.

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

Configure une séquence de base de données lors du ciblage de SQL Server.

ForSqlServerUseIdentityColumns(ModelBuilder)

Configure le modèle pour qu’il utilise la fonctionnalité SQL Server IDENTITY pour générer des valeurs pour les propriétés clés marquées comme OnAdd, lors du ciblage de SQL Server. Il s’agit du comportement par défaut lors du ciblage de SQL Server.

ForSqlServerUseIdentityColumns(ModelBuilder, Int32, Int32)
Obsolète.

Configure le modèle pour qu’il utilise la fonctionnalité SQL Server IDENTITY pour générer des valeurs pour les propriétés clés marquées comme OnAdd, lors du ciblage de SQL Server. Il s’agit du comportement par défaut lors du ciblage de SQL Server.

ForSqlServerUseSequenceHiLo(ModelBuilder, String, String)
Obsolète.

Configure le modèle pour qu’il utilise un modèle hi-lo basé sur une séquence pour générer des valeurs pour les propriétés clés marquées comme OnAdd, lors du ciblage de SQL Server.

HasDatabaseMaxSize(ModelBuilder, String)

Configure la taille maximale pour Azure SQL Database.

HasPerformanceLevel(ModelBuilder, String)

Configure le niveau de performances (SERVICE_OBJECTIVE) pour Azure SQL Database en tant que littéral de chaîne.

HasPerformanceLevelSql(ModelBuilder, String)

Configure le niveau de performances (SERVICE_OBJECTIVE) pour Azure SQL Database en tant qu’expression SQL.

HasServiceTier(ModelBuilder, String)

Configure le niveau de service (EDITION) pour Azure SQL Database en tant que littéral de chaîne.

HasServiceTierSql(ModelBuilder, String)

Configure le niveau de service (EDITION) pour Azure SQL Database en tant qu’expression SQL.

UseHiLo(ModelBuilder, String, String)

Configure le modèle pour qu’il utilise un modèle hi-lo basé sur une séquence pour générer des valeurs pour les propriétés clés marquées comme OnAdd, lors du ciblage de SQL Server.

UseIdentityColumns(ModelBuilder, Int32, Int32)

Configure le modèle pour qu’il utilise la fonctionnalité SQL Server IDENTITY pour générer des valeurs pour les propriétés clés marquées comme OnAdd, lors du ciblage de SQL Server. Il s’agit du comportement par défaut lors du ciblage de SQL Server.

UseIdentityColumns(ModelBuilder, Int64, Int32)

Configure le modèle pour qu’il utilise la fonctionnalité SQL Server IDENTITY pour générer des valeurs pour les propriétés clés marquées comme OnAdd, lors du ciblage de SQL Server. Il s’agit du comportement par défaut lors du ciblage de SQL Server.

UseKeySequences(ModelBuilder, String, String)

Configure le modèle pour qu’il utilise une séquence par hiérarchie pour générer des valeurs pour les propriétés clés marquées comme OnAdd, lors du ciblage de SQL Server.

S’applique à