最大長Maximum Length

最大長を構成する特定のプロパティを使用する適切なデータ型のデータ ストアにヒントを提供します。Configuring a maximum length provides a hint to the data store about the appropriate data type to use for a given property. 最大長にのみ適用されます、配列のデータ型などstringbyte[]します。Maximum length only applies to array data types, such as string and byte[].

注意

Entity Framework では、プロバイダーにデータを渡す前に最大の長さの検証は実行しません。Entity Framework does not do any validation of maximum length before passing data to the provider. 適切な検証するために、プロバイダーまたはデータ ストアの責任です。It is up to the provider or data store to validate if appropriate. たとえば、基になる列のデータ型として例外が発生が最大長を超えると、SQL Server を対象とするときに許可されません余分なデータを格納します。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.

規約Conventions

慣例によりには、データベース プロバイダーのプロパティの適切なデータ型を選択するまでそのままです。By convention, it is left up to the database provider to choose an appropriate data type for properties. 長さを持つプロパティの場合は、データベース プロバイダーはデータ型では、データの最大の長さが一般を選択します。For properties that have a length, the database provider will generally choose a data type that allows for the longest length of data. たとえば、Microsoft SQL Server は使用nvarchar(max)stringプロパティ (またはnvarchar(450)列がキーとして使用されている場合)。For example, Microsoft SQL Server will use nvarchar(max) for string properties (or nvarchar(450) if the column is used as a key).

データの注釈Data Annotations

データ注釈を使用して、プロパティの最大長を構成することができます。You can use the Data Annotations to configure a maximum length for a property. この例では、この結果として SQL Server を対象とする、nvarchar(500)使用されているデータ型。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; }
}

Fluent APIFluent API

Fluent API を使用して、プロパティの最大長を構成することができます。You can use the Fluent API to configure a maximum length for a property. この例では、この結果として SQL Server を対象とする、nvarchar(500)使用されているデータ型。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; }
}