Langue

ModelBuilder Classe

Définition

Fournit une surface d’API simple pour configurer une IMutableModel forme 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>
[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)
Héritage
ModelBuilder
Attributs
Implémente
IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalModelBuilder> IInfrastructure<IConventionModelBuilder>

Remarques

Vous pouvez utiliser ModelBuilder pour construire un modèle pour un contexte en remplaçant OnModelCreating(ModelBuilder) votre contexte dérivé. Vous pouvez également créer le modèle en externe et le définir sur une DbContextOptions instance passée 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

Nom Description
ModelBuilder()

Initialise une nouvelle instance de la ModelBuilder classe sans conventions.

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

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 prudence extrême et savoir que cela peut entraîner des échecs d’application lors de la mise à jour vers une nouvelle version de Entity Framework Core.

ModelBuilder(ConventionSet, ModelDependencies)

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

ModelBuilder(ConventionSet)

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

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 prudence extrême et savoir que cela peut entraîner des échecs d’application lors de la mise à jour vers une nouvelle version de Entity Framework Core.

Propriétés

Nom Description
Model

Modèle configuré.

Méthodes

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

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

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

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

ApplyConfigurationsFromAssembly(Assembly, Func<Type,Boolean>)

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

Entity(String, Action<EntityTypeBuilder>)

Effectue la configuration d’un type d’entité donné dans le modèle. Si un type d’entité portant 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 sera ajouté au modèle.

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é portant 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 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 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 est 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 est 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 est ajouté au modèle.

FinalizeModel()

Force le post-traitement sur le modèle de sorte 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 lui permet d’être exécutée 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 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’une 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’une instance d’un type d’entité.

HasEmbeddedDiscriminatorName(String)

Définit le nom à utiliser pour les propriétés de discrimination incorporées dans les documents JSON. La valeur par défaut est « $type ».

Ignore(String)

Exclut un type d’entité portant le nom 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.

Ignore(Type)

Exclut un type d’entité avec un type CLR 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.

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 sont configurées en tant qu’instances de type appartenant distinctes.

Owned<T>()

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

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 sera ajouté au modèle.

Cette surcharge permet à la configuration du type de requête d’être effectuée en ligne dans l’appel de méthode plutôt que d’être chaînée après un appel à Query<TQuery>(). Cela permet à une configuration supplémentaire au niveau du modèle d’être chaînée après la configuration du 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 sera ajouté au modèle.

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

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 sera ajouté au modèle.

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 sera 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 sera ajouté au modèle.

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

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(String, Type)

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.

SharedTypeEntity<TEntity>(String)

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 la valeur 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 spécifié, est utilisé lorsque de nouveaux objets sont construits, généralement lorsque les 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 la valeur PropertyAccessMode à utiliser pour toutes les propriétés de ce type d’entité.

Implémentations d’interfaces explicites

Nom Description
IInfrastructure<IConventionModelBuilder>.Instance

Élément interne ModelBuilder utilisé pour configurer ce modèle.

IInfrastructure<InternalModelBuilder>.Instance

Élément 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 de l’application.

Méthodes d’extension

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

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, String, String)

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, 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<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, 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.

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

Configure le modèle pour utiliser la fonctionnalité SQL Server IDENTITY pour générer des valeurs pour les propriétés de clé 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)

Configure le modèle pour utiliser la fonctionnalité SQL Server IDENTITY pour générer des valeurs pour les propriétés de clé 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 utiliser un modèle de hi-lo basé sur une séquence pour générer des valeurs pour les propriétés de clé marquées comme OnAdd, lors du ciblage de SQL Server.

GetInfrastructure<T>(IInfrastructure<T>)

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

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.

HasAutoscaleThroughput(ModelBuilder, Nullable<Int32>)

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

HasDatabaseMaxSize(ModelBuilder, String)

Configure la taille maximale pour Azure SQL Database.

HasDbFunction(ModelBuilder, MethodInfo, Action<DbFunctionBuilder>)

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

HasDbFunction(ModelBuilder, MethodInfo)

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.

HasDefaultContainer(ModelBuilder, String)

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

HasDefaultFullTextLanguage(ModelBuilder, String)

Configure une langue par défaut à utiliser pour la recherche en texte intégral dans l’étendue de la base de données.

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.

HasDiscriminatorInJsonIds(ModelBuilder, Nullable<Boolean>)

Inclut la valeur de discriminateur du type d’entité dans la valeur JSON « id ». Il s’agissait du comportement par défaut avant EF Core 9.

HasFullTextCatalog(ModelBuilder, String)

Configure un catalogue de texte intégral dans le modèle.

HasManualThroughput(ModelBuilder, Nullable<Int32>)

Configure l’offre manuelle de débit provisionné.

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.

HasRootDiscriminatorInJsonId(ModelBuilder, Nullable<Boolean>)

Inclut la valeur de discrimination du type d’entité racine dans la valeur JSON « id ». Cela permet aux types avec la même clé primaire d’être enregistrés dans le même conteneur, tout en autorisant l’utilisation de « ReadItem » pour les recherches d’un type inconnu.

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, 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, 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)

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, 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(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)

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, 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.

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)

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

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.

HasShadowIds(ModelBuilder, Nullable<Boolean>)

Force la génération de modèles à créer toujours une propriété d’ombre « __id » mappée au json « id ». Il s’agissait du comportement par défaut avant EF Core 9.0.

UseCollation(ModelBuilder, String)

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

UseHiLo(ModelBuilder, String, String)

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

UseIdentityColumns(ModelBuilder, Int32, Int32)

Configure le modèle pour utiliser la fonctionnalité SQL Server IDENTITY pour générer des valeurs pour les propriétés de clé 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 utiliser la fonctionnalité SQL Server IDENTITY pour générer des valeurs pour les propriétés de clé 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 utiliser une séquence par hiérarchie pour générer des valeurs pour les propriétés de clé marquées comme OnAdd, lors du ciblage de SQL Server.

UseNamedDefaultConstraints(ModelBuilder, Boolean)

Configure le modèle pour qu’il utilise des contraintes par défaut nommées.

S’applique à