Comprimento máximoMaximum Length

A configuração de um comprimento máximo fornece uma dica para o repositório de dados sobre o tipo de dados apropriado a ser usado para uma determinada propriedade.Configuring a maximum length provides a hint to the data store about the appropriate data type to use for a given property. Comprimento máximo só se aplica a tipos de dados de matriz, como string e byte[].Maximum length only applies to array data types, such as string and byte[].

Observação

Entity Framework não faz nenhuma validação de comprimento máximo antes de passar os dados para o provedor.Entity Framework does not do any validation of maximum length before passing data to the provider. É até o repositório de dados ou provedor para validar se apropriado.It is up to the provider or data store to validate if appropriate. Por exemplo, quando voltados para o SQL Server, excedendo o comprimento máximo resultará em uma exceção como o tipo de dados da coluna subjacente não permitirá excesso de dados a ser armazenado.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.

ConvençõesConventions

Por convenção, ele é mantido até que o provedor de banco de dados para escolher um tipo de dados apropriado para as propriedades.By convention, it is left up to the database provider to choose an appropriate data type for properties. Para propriedades que têm um comprimento, o provedor de banco de dados geralmente escolherá um tipo de dados que permite que o maior tamanho de dados.For properties that have a length, the database provider will generally choose a data type that allows for the longest length of data. Por exemplo, Microsoft SQL Server usará nvarchar(max) para string propriedades (ou nvarchar(450) se a coluna é usada como uma chave).For example, Microsoft SQL Server will use nvarchar(max) for string properties (or nvarchar(450) if the column is used as a key).

Anotações de dadosData Annotations

Você pode usar as anotações de dados para configurar um comprimento máximo para uma propriedade.You can use the Data Annotations to configure a maximum length for a property. Neste exemplo, direcionando o SQL Server, isso resultaria no nvarchar(500) tipo de dados que está sendo usado.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 fluenteFluent API

Você pode usar a API fluente para configurar um comprimento máximo para uma propriedade.You can use the Fluent API to configure a maximum length for a property. Neste exemplo, direcionando o SQL Server, isso resultaria no nvarchar(500) tipo de dados que está sendo usado.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; }
}