ModelBuilder Classe

Définition

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

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

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>

Constructeurs

ModelBuilder()

Initialise une nouvelle instance de la ModelBuilder classe sans conventions.

AVERTISSEMENT : les conventions sont généralement 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(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. Elle peut être modifiée ou supprimée sans préavis dans aucune version. Vous ne devez l’utiliser directement dans votre code qu’avec une extrême prudence 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

Model

Modèle en cours de configuration.

Méthodes

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)

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 n’est pas déjà inclus dans le modèle, un nouveau type d’entité qui n’a pas de type CLR correspondant sera 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é portant le nom fourni n’est pas déjà inclus dans le modèle, un nouveau type d’entité qui n’a pas de type CLR correspondant sera ajouté au modèle.

Cette surcharge permet de configurer le type d’entité dans la ligne de l’appel de méthode au lieu d’être chaîné après un appel à Entity(String) . Cela permet une configuration supplémentaire au niveau du modèle pour être chaînée après la configuration pour le type d’entité.

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é n’est pas déjà inclus dans le 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é n’est pas déjà inclus dans le modèle, il sera ajouté au modèle.

Cette surcharge permet de configurer le type d’entité dans la ligne de l’appel de méthode au lieu d’être chaîné après un appel à Entity<TEntity>() . Cela permet une configuration supplémentaire au niveau du modèle pour être chaînée après la configuration pour le type d’entité.

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é n’est pas déjà inclus dans le 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é n’est pas déjà inclus dans le modèle, il sera ajouté au modèle.

Cette surcharge permet de configurer le type d’entité dans la ligne de l’appel de méthode au lieu d’être chaîné après un appel à Entity<TEntity>() . Cela permet une configuration supplémentaire au niveau du modèle pour être chaînée après la configuration pour le type d’entité.

FinalizeModel()

Force le suivi du traitement sur le modèle de sorte qu’il soit prêt à être utilisé par le Runtime. Ce traitement de publication s’effectue automatiquement lors de l’utilisation OnModelCreating(ModelBuilder) de ; 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 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’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é.

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 le 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 seront configurées en tant qu’instances de type appartenant séparées.

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 appartenant séparées.

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 n’est pas déjà inclus dans le modèle, il sera 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 n’est pas déjà inclus dans le 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 au lieu d’être chaînée après un appel à Query<TQuery>() . Cela permet de chaîner une configuration supplémentaire au niveau du modèle 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 n’est pas déjà inclus dans le 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 au lieu d’être chaînée après un appel à Query<TQuery>() . Cela permet de chaîner une configuration supplémentaire au niveau du modèle après la configuration du 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 n’est pas déjà inclus dans le 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 n’est pas déjà inclus dans le 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 au lieu d’être chaînée après un appel à Query<TQuery>() . Cela permet de chaîner une configuration supplémentaire au niveau du modèle après la configuration du 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.

Si un type d’entité portant le nom fourni n’est pas déjà inclus dans le modèle, un nouveau type d’entité avec le type CLR fourni sera ajouté au modèle en tant que type d’entité de type partagé.

Le type d’entité de type partagé est un type d’entité qui peut partager le type CLR avec d’autres types dans le modèle, mais qui a un nom unique et qui est toujours identifié par le nom.

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.

Si un type d’entité portant le nom fourni n’est pas déjà inclus dans le modèle, un nouveau type d’entité avec le type CLR fourni sera ajouté au modèle en tant que type d’entité de type partagé.

Le type d’entité de type partagé est un type d’entité qui peut partager le type CLR avec d’autres types dans le modèle, mais qui a un nom unique et qui est toujours identifié par le nom.

Cette surcharge permet de configurer le type d’entité dans la ligne de l’appel de méthode au lieu d’être chaîné après un appel à Entity(String) . Cela permet une configuration supplémentaire au niveau du modèle pour être chaînée après la configuration pour le type d’entité.

SharedTypeEntity<TEntity>(String)

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

Si un type d’entité portant le nom fourni n’est pas déjà inclus dans le modèle, un nouveau type d’entité avec le type CLR fourni sera ajouté au modèle en tant que type d’entité de type partagé.

Le type d’entité de type partagé est un type d’entité qui peut partager le type CLR avec d’autres types dans le modèle, mais qui a un nom unique et qui est toujours identifié par le nom.

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.

Si un type d’entité portant le nom fourni n’est pas déjà inclus dans le modèle, un nouveau type d’entité avec le type CLR fourni sera ajouté au modèle en tant que type d’entité de type partagé.

Le type d’entité de type partagé est un type d’entité qui peut partager le type CLR avec d’autres types dans le modèle, mais qui a un nom unique et qui est toujours identifié par le nom.

Cette surcharge permet de configurer le type d’entité inline dans l’appel de méthode au lieu d’être chaîné après un appel à Entity<TEntity>() . Cela permet une configuration supplémentaire au niveau du modèle pour être chaînée après la configuration pour le type d’entité.

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, si celui-ci est trouvé par convention ou a été spécifié, est utilisé lors de la construction de nouveaux objets, en général 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 witll modifier ce comportement pour toutes les propriétés du modèle, comme décrit dans l' PropertyAccessMode énumération.

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, si celui-ci est trouvé par convention ou a été spécifié, est utilisé lors de la construction de nouveaux objets, en général 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 modifie ce comportement pour toutes les propriétés du modèle, comme décrit dans l' PropertyAccessMode énumération.

Implémentations d’interfaces explicites

IInfrastructure<IConventionModelBuilder>.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. Elle n’est pas destinée à être utilisée dans le code de l’application.

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. Elle n’est pas destinée à être utilisée dans le code de l’application.

Méthodes d’extension

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

GetInfrastructure<T>(IInfrastructure<T>)

Obtient la valeur d’une propriété qui est 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 de l’application.

IInfrastructure<T> est utilisé pour masquer les propriétés qui ne sont pas destinées à être utilisées dans le code de l’application, mais qui peuvent être utilisées dans les méthodes d’extension écrites par les fournisseurs de base de données, etc.

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 explicitement configuré.

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 utiliser la fonctionnalité d’identité SQL Server 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 lorsque vous ciblez SQL Server.

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

Configure le modèle pour utiliser la fonctionnalité d’identité SQL Server 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 lorsque vous ciblez SQL Server.

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

Configure le modèle pour utiliser un modèle 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.

HasDatabaseMaxSize(ModelBuilder, String)

Configure la taille maximale de Azure SQL Database.

Les unités doivent être incluses, par exemple « 100 Mo ». Consultez Azure SQL Database documentation pour connaître toutes les valeurs prises en charge.

HasPerformanceLevel(ModelBuilder, String)

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

Consultez Azure SQL Database documentation pour connaître les valeurs prises en charge.

HasPerformanceLevelSql(ModelBuilder, String)

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

Consultez Azure SQL Database documentation pour connaître les valeurs prises en charge.

HasServiceTier(ModelBuilder, String)

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

Consultez Azure SQL Database documentation pour connaître les valeurs prises en charge.

HasServiceTierSql(ModelBuilder, String)

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

Consultez Azure SQL Database documentation pour connaître les valeurs prises en charge.

UseHiLo(ModelBuilder, String, String)

Configure le modèle pour utiliser un modèle 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é d’identité SQL Server 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 lorsque vous ciblez SQL Server.

S’applique à