Longueur maximaleMaximum Length

Configuration d’une longueur maximale fournit une indication pour le magasin de données sur le type de données approprié à utiliser pour une propriété donnée.Configuring a maximum length provides a hint to the data store about the appropriate data type to use for a given property. La longueur maximale s’applique uniquement aux types de données de tableau, tel que string et byte[].Maximum length only applies to array data types, such as string and byte[].

Note

Entity Framework n’effectue aucune validation de longueur maximale avant de passer des données au fournisseur.Entity Framework does not do any validation of maximum length before passing data to the provider. C’est à la banque de données ou le fournisseur pour valider le cas échéant.It is up to the provider or data store to validate if appropriate. Par exemple, SQL Server, qui dépasse la longueur maximale de ciblage entraîne une exception en tant que type de données de la colonne sous-jacente n’autorise pas les données excédentaires à stocker.For example, when targeting SQL Server, exceeding the maximum length will result in an exception as the data type of the underlying column will not allow excess data to be stored.

ConventionsConventions

Par convention, il incombe au fournisseur de base de données de choisir un type de données approprié pour les propriétés.By convention, it is left up to the database provider to choose an appropriate data type for properties. Pour les propriétés qui ont une longueur, le fournisseur de base de données sera choisir généralement d’un type de données qui permet la longueur de la plus longue des données.For properties that have a length, the database provider will generally choose a data type that allows for the longest length of data. Par exemple, Microsoft SQL Server utilisera nvarchar(max) pour string propriétés (ou nvarchar(450) si la colonne est utilisée en tant que clé).For example, Microsoft SQL Server will use nvarchar(max) for string properties (or nvarchar(450) if the column is used as a key).

Annotations de donnéesData Annotations

Vous pouvez utiliser les Annotations de données pour configurer une longueur maximale pour une propriété.You can use the Data Annotations to configure a maximum length for a property. Dans cet exemple, ciblant SQL Server, cela entraînerait le nvarchar(500) type de données qui est utilisé.In this example, targeting SQL Server this would result in the nvarchar(500) data type being used.

public class Blog
{
    public int BlogId { get; set; }
    [MaxLength(500)]
    public string Url { get; set; }
}

API FluentFluent API

Vous pouvez utiliser l’API Fluent pour configurer une longueur maximale pour une propriété.You can use the Fluent API to configure a maximum length for a property. Dans cet exemple, ciblant SQL Server, cela entraînerait le nvarchar(500) type de données qui est utilisé.In this example, targeting SQL Server this would result in the nvarchar(500) data type being used.

class MyContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Blog>()
            .Property(b => b.Url)
            .HasMaxLength(500);
    }
}

public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }
}