最大長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; }
}