PropertyBuilder Classe

Définition

Fournit une API simple pour la configuration d’un IMutableProperty .

Les instances de cette classe sont retournées à partir de méthodes lors de l’utilisation de l' ModelBuilder API, et elles ne sont pas conçues pour être construites directement dans le code de votre application.

public class PropertyBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.IMutableModel>, Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalPropertyBuilder>
public class PropertyBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalPropertyBuilder>
public class PropertyBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionPropertyBuilder>
type PropertyBuilder = class
    interface IInfrastructure<IMutableModel>
    interface IInfrastructure<InternalPropertyBuilder>
type PropertyBuilder = class
    interface IInfrastructure<InternalPropertyBuilder>
type PropertyBuilder = class
    interface IInfrastructure<IConventionPropertyBuilder>
Public Class PropertyBuilder
Implements IInfrastructure(Of IMutableModel), IInfrastructure(Of InternalPropertyBuilder)
Public Class PropertyBuilder
Implements IInfrastructure(Of InternalPropertyBuilder)
Public Class PropertyBuilder
Implements IInfrastructure(Of IConventionPropertyBuilder)
Héritage
PropertyBuilder
Dérivé
Implémente
IInfrastructure<IMutableModel> IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalPropertyBuilder> IInfrastructure<IConventionPropertyBuilder>

Constructeurs

PropertyBuilder(IMutableProperty)

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.

PropertyBuilder(InternalPropertyBuilder)

Cette API prend en charge l’infrastructure Entity Framework Core et n’est pas destinée à être utilisée directement à partir de votre code. Cette API pourra être changée ou supprimée dans les versions ultérieures.

Propriétés

Metadata

Propriété en cours de configuration.

Méthodes

HasAnnotation(String, Object)

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

HasConversion(Type)

Configure la propriété afin que la valeur de propriété soit convertie dans le type donné avant d’écrire dans la base de données et reconvertie lors de la lecture de la base de données.

HasConversion(Type, ValueComparer)

Configure la propriété afin que la valeur de propriété soit convertie dans le type donné avant d’écrire dans la base de données et reconvertie lors de la lecture de la base de données.

HasConversion(ValueConverter)

Configure la propriété afin que la valeur de propriété soit convertie vers et depuis la base de données à l’aide du donné ValueConverter .

HasConversion(ValueConverter, ValueComparer)

Configure la propriété afin que la valeur de propriété soit convertie vers et depuis la base de données à l’aide du donné ValueConverter .

HasConversion<TProvider>()

Configure la propriété afin que la valeur de propriété soit convertie dans le type donné avant d’écrire dans la base de données et reconvertie lors de la lecture de la base de données.

HasConversion<TProvider>(ValueComparer)

Configure la propriété afin que la valeur de propriété soit convertie dans le type donné avant d’écrire dans la base de données et reconvertie lors de la lecture de la base de données.

HasField(String)

Définit le champ de stockage à utiliser pour cette propriété.

Les champs de stockage sont normalement trouvés par convention comme décrit ici : http://go.microsoft.com/fwlink/?LinkId=723277 . Cette méthode est utile pour définir des champs de stockage explicitement dans les cas où le champ correct est introuvable par Convention.

Par défaut, le champ de stockage, s’il est trouvé 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. Cela peut être modifié en appelant UsePropertyAccessMode(PropertyAccessMode) .

HasMaxLength(Int32)

Configure la longueur maximale des données qui peuvent être stockées dans cette propriété. La longueur maximale ne peut être définie que sur les propriétés du tableau (y compris les String Propriétés).

HasPrecision(Int32)

Configure la précision de la propriété.

HasPrecision(Int32, Int32)

Configure la précision et l'échelle de la propriété.

HasValueGenerator(Func<IProperty,IEntityType,ValueGenerator>)

Configure une fabrique pour créer un ValueGenerator à utiliser pour générer des valeurs pour cette propriété.

Des valeurs sont générées lorsque l’entité est ajoutée au contexte à l’aide de, par exemple, Add<TEntity>(TEntity) . Les valeurs sont générées uniquement lorsque la propriété est affectée à la valeur CLR par défaut ( null pour String, 0 pour int, GUID. Empty pour GUID, etc.).

Cette fabrique sera appelée une fois pour créer une seule instance du générateur de valeurs, et sera utilisée pour générer des valeurs pour cette propriété dans toutes les instances du type d’entité.

Cette méthode est destinée à être utilisée avec la génération de valeurs personnalisées. La génération de valeur pour les cas courants est généralement gérée automatiquement par le fournisseur de base de données.

HasValueGenerator(Type)

Configure le ValueGenerator qui générera des valeurs pour cette propriété.

Des valeurs sont générées lorsque l’entité est ajoutée au contexte à l’aide de, par exemple, Add<TEntity>(TEntity) . Les valeurs sont générées uniquement lorsque la propriété est affectée à la valeur CLR par défaut ( null pour String, 0 pour int, GUID. Empty pour GUID, etc.).

Une seule instance de ce type sera créée et utilisée pour générer des valeurs pour cette propriété dans toutes les instances du type d’entité. Le type doit être instanciable et avoir un constructeur sans paramètre.

Cette méthode est destinée à être utilisée avec la génération de valeurs personnalisées. La génération de valeur pour les cas courants est généralement gérée automatiquement par le fournisseur de base de données.

La définition de NULL ne désactive pas la génération de valeur pour cette propriété. elle efface simplement tout générateur configuré explicitement pour cette propriété. Le fournisseur de base de données peut toujours avoir un générateur de valeur pour le type de propriété.

HasValueGenerator<TGenerator>()

Configure le ValueGenerator qui générera des valeurs pour cette propriété.

Des valeurs sont générées lorsque l’entité est ajoutée au contexte à l’aide de, par exemple, Add<TEntity>(TEntity) . Les valeurs sont générées uniquement lorsque la propriété est affectée à la valeur CLR par défaut ( null pour String, 0 pour int, GUID. Empty pour GUID, etc.).

Une seule instance de ce type sera créée et utilisée pour générer des valeurs pour cette propriété dans toutes les instances du type d’entité. Le type doit être instanciable et avoir un constructeur sans paramètre.

Cette méthode est destinée à être utilisée avec la génération de valeurs personnalisées. La génération de valeur pour les cas courants est généralement gérée automatiquement par le fournisseur de base de données.

IsConcurrencyToken(Boolean)

Configure si cette propriété doit être utilisée comme jeton d’accès concurrentiel. Quand une propriété est configurée comme un jeton d’accès concurrentiel, la valeur de la base de données est vérifiée lorsqu’une instance de ce type d’entité est mise à jour ou supprimée pendant la SaveChanges() pour s’assurer qu’elle n’a pas été modifiée depuis la récupération de l’instance de la base de données. Si elle a changé, une exception est levée et les modifications ne sont pas appliquées à la base de données.

IsRequired(Boolean)

Configure si cette propriété doit avoir une valeur assignée ou null une valeur valide. Une propriété ne peut être configurée qu’en tant que non requis si elle est basée sur un type CLR qui peut être assigné null .

IsRowVersion()

Configure la propriété en tant que ValueGeneratedOnAddOrUpdate() et IsConcurrencyToken(Boolean) .

Les fournisseurs de base de données peuvent choisir d’interpréter cela de manière différente, mais il est couramment utilisé pour indiquer une forme de contrôle de version de ligne automatique utilisée pour la détection d’accès concurrentiel optimiste.

IsUnicode(Boolean)

Configure si la propriété est en mesure de conserver les caractères Unicode. Ne peut être défini que sur les String Propriétés.

UsePropertyAccessMode(PropertyAccessMode)

Définit le PropertyAccessMode à utiliser pour cette propriété.

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 modifie ce comportement pour cette propriété comme décrit dans l' PropertyAccessMode énumération.

L’appel de cette méthode overrrides pour cette propriété tout mode d’accès défini sur le type d’entité ou le modèle.

UsePropertyAccessMode(PropertyAccessMode)

Définit le PropertyAccessMode à utiliser pour cette propriété.

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 cette propriété comme décrit dans l' PropertyAccessMode énumération.

L’appel de cette méthode remplace pour cette propriété tout mode d’accès défini sur le type d’entité ou le modèle.

ValueGeneratedNever()

Configure une propriété pour qu’elle n’ait jamais de valeur générée par la base de données lorsqu’une instance de ce type d’entité est enregistrée.

ValueGeneratedOnAdd()

Configure une propriété pour qu’une valeur soit générée uniquement lors de l’enregistrement d’une nouvelle entité, sauf si une valeur non null, non temporaire a été définie, auquel cas la valeur définie est enregistrée à la place. La valeur peut être générée par un générateur de valeur côté client ou peut être générée par la base de données dans le cadre de l’enregistrement de l’entité.

ValueGeneratedOnAddOrUpdate()

Configure une propriété pour qu’une valeur soit générée lors de l’enregistrement d’une entité nouvelle ou existante.

ValueGeneratedOnUpdate()

Configure une propriété pour qu’une valeur soit générée lors de l’enregistrement d’une entité existante.

ValueGeneratedOnUpdateSometimes()

Configure une propriété pour qu’une valeur soit générée sous certaines conditions lors de l’enregistrement d’une entité existante.

Implémentations d’interfaces explicites

IInfrastructure<IConventionPropertyBuilder>.Instance

Générateur interne utilisé pour configurer la propriété.

IInfrastructure<IMutableModel>.Instance

Modèle auquel la propriété appartient.

IInfrastructure<InternalPropertyBuilder>.Instance

Générateur interne utilisé pour configurer la propriété.

Méthodes d’extension

IsETagConcurrency(PropertyBuilder)

Configure cette propriété pour qu’elle soit le jeton d’accès concurrentiel ETag.

ToJsonProperty(PropertyBuilder, String)

Configure le nom de la propriété à laquelle la propriété est mappée lors du ciblage d’Azure Cosmos.

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.

HasColumnName(PropertyBuilder, String)

Configure la colonne sur laquelle la propriété est mappée lors du ciblage d’une base de données relationnelle.

HasColumnType(PropertyBuilder, String)

Configure le type de données de la colonne mappée à la propriété lors du ciblage d’une base de données relationnelle. Il doit s’agir du nom complet du type, notamment la précision, l’échelle, la longueur, etc.

HasComment(PropertyBuilder, String)

Configure un commentaire à appliquer à la colonne

HasComputedColumnSql(PropertyBuilder)

Configure la propriété pour qu’elle soit mappée à une colonne calculée lors du ciblage d’une base de données relationnelle.

En cas d’appel sans argument, cette méthode indique à EF qu’une colonne est calculée sans qu’il soit nécessaire de spécifier le SQL réel utilisé pour le calculer. Cela peut être utile lors du mappage d’EF à une base de données existante.

HasComputedColumnSql(PropertyBuilder, String)

Configure la propriété pour qu’elle soit mappée à une colonne calculée lors du ciblage d’une base de données relationnelle.

HasComputedColumnSql(PropertyBuilder, String, Nullable<Boolean>)

Configure la propriété pour qu’elle soit mappée à une colonne calculée lors du ciblage d’une base de données relationnelle.

HasDefaultValue(PropertyBuilder)

Configure la valeur par défaut de la colonne à laquelle la propriété est mappée lors du ciblage d’une base de données relationnelle.

Lorsqu’elle est appelée sans argument, cette méthode indique à EF qu’une colonne a une contrainte de valeur par défaut d’un certain type sans avoir besoin de spécifier exactement ce qu’elle est. Cela peut être utile lors du mappage d’EF à une base de données existante.

HasDefaultValue(PropertyBuilder, Object)

Configure la valeur par défaut de la colonne à laquelle la propriété est mappée lors du ciblage d’une base de données relationnelle.

HasDefaultValueSql(PropertyBuilder)

Configure l’expression de valeur par défaut pour la colonne mappée à la propriété lors du ciblage d’une base de données relationnelle.

Lorsqu’elle est appelée sans argument, cette méthode indique à EF qu’une colonne a une contrainte de valeur par défaut d’un certain type sans avoir besoin de spécifier exactement ce qu’elle est. Cela peut être utile lors du mappage d’EF à une base de données existante.

HasDefaultValueSql(PropertyBuilder, String)

Configure l’expression de valeur par défaut pour la colonne mappée à la propriété lors du ciblage d’une base de données relationnelle.

IsFixedLength(PropertyBuilder, Boolean)

Configure la propriété comme étant en mesure de stocker uniquement des données de longueur fixe, telles que des chaînes.

UseCollation(PropertyBuilder, String)

Configure la propriété pour qu’elle utilise le classement donné. La colonne de base de données sera créée avec le classement donné et sera utilisée implicitement dans toutes les opérations respectant le classement.

ForSqliteHasDimension(PropertyBuilder, Ordinates)

Configure la dimension de la colonne à laquelle la propriété est mappée en ciblant SQLite.

ForSqliteHasDimension(PropertyBuilder, Ordinates)
Obsolète.

Configure la dimension de la colonne à laquelle la propriété est mappée en ciblant SQLite.

HasGeometricDimension(PropertyBuilder, Ordinates)

Configure la dimension de la colonne à laquelle la propriété est mappée en ciblant SQLite.

ForSqliteHasColumnName(PropertyBuilder, String)

Configure la colonne sur laquelle la propriété est mappée en ciblant SQLite.

ForSqliteHasColumnType(PropertyBuilder, String)

Configure le type de données de la colonne sur laquelle la propriété est mappée en ciblant SQLite.

ForSqliteHasDefaultValue(PropertyBuilder, Object)

Configure la valeur par défaut de la colonne à laquelle la propriété est mappée lors du ciblage de SQLite.

ForSqliteHasDefaultValueSql(PropertyBuilder, String)

Configure l’expression de valeur par défaut pour la colonne à laquelle la propriété est mappée lors du ciblage de SQLite.

ForSqliteHasSrid(PropertyBuilder, Int32)
Obsolète.

Configure le SRID de la colonne sur laquelle la propriété est mappée lors du ciblage de SQLite.

HasSrid(PropertyBuilder, Int32)

Configure le SRID de la colonne sur laquelle la propriété est mappée lors du ciblage de SQLite.

ForSqlServerHasColumnName(PropertyBuilder, String)

Configure la colonne sur laquelle la propriété est mappée en ciblant SQL Server.

ForSqlServerHasColumnType(PropertyBuilder, String)

Configure le type de données de la colonne sur laquelle la propriété est mappée en ciblant SQL Server. Il doit s’agir du nom complet du type, notamment la précision, l’échelle, la longueur, etc.

ForSqlServerHasComputedColumnSql(PropertyBuilder, String)

Configure la propriété pour qu’elle soit mappée à une colonne calculée lors du ciblage de SQL Server.

ForSqlServerHasDefaultValue(PropertyBuilder, Object)

Configure la valeur par défaut de la colonne à laquelle la propriété est mappée lorsque vous ciblez SQL Server.

ForSqlServerHasDefaultValueSql(PropertyBuilder, String)

Configure l’expression de valeur par défaut pour la colonne à laquelle la propriété est mappée lorsque vous ciblez SQL Server.

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

Configure la propriété de clé pour utiliser un modèle Hi-Lo basé sur une séquence pour générer des valeurs pour les nouvelles entités, lors du ciblage de SQL Server. Cette méthode affecte à la propriété la valeur OnAdd .

UseHiLo(PropertyBuilder, String, String)

Configure la propriété de clé pour utiliser un modèle Hi-Lo basé sur une séquence pour générer des valeurs pour les nouvelles entités, lors du ciblage de SQL Server. Cette méthode affecte à la propriété la valeur OnAdd .

UseIdentityColumn(PropertyBuilder, Int32, Int32)

Configure la propriété de clé pour utiliser la fonctionnalité d’identité SQL Server pour générer des valeurs pour les nouvelles entités, lorsque vous ciblez des SQL Server. Cette méthode affecte à la propriété la valeur OnAdd .

UseSqlServerIdentityColumn(PropertyBuilder)

Configure la propriété de clé pour utiliser la fonctionnalité d’identité SQL Server pour générer des valeurs pour les nouvelles entités, lorsque vous ciblez des SQL Server. Cette méthode affecte à la propriété la valeur OnAdd .

UseSqlServerIdentityColumn(PropertyBuilder, Int32, Int32)
Obsolète.

Configure la propriété de clé pour utiliser la fonctionnalité d’identité SQL Server pour générer des valeurs pour les nouvelles entités, lorsque vous ciblez des SQL Server. Cette méthode affecte à la propriété la valeur OnAdd .

S’applique à