最大值
配置一个最大长度提供一个提示给用作给定属性关于适当数据类型的数据存储。最大长度只适用于数组数据类型,如字符串和byte[]。
注意:
实体框架在向提供者传递数据之前不做任何最大长度验证的。如果合适的话,它由供应商或数据存储来验证。例如,当针对SQL Server,超过了最大长度将导致作为基础列的数据类型将不允许多余的数据被存储的异常。
在这文章:
最大值
公约
数据注解
Fluent API
公约
根据惯例,它是留给数据库提供者来选择适当的属性的数据类型。对于一个有长度的属性,数据库提供程序通常会选择一个允许数据长度最长的数据类型。例如,微软SQL Server将使用nvarchar(max)为字符串属性(或nvarchar(450)如果列被用作健)。
数据注解
您能使用数据注解来为属性配置一个最大长度。在这个例子中,针对SQL Server,这将导致nvarchar(500)数据类型正被使用。
public class Blog
{
public int BlogId { get; set; }
[MaxLength(500)]
public string Url { get; set; }
}
Fluent API
你能使用一个Fluent API来为属性配置一个最大长度。在这个例子中,针对SQL Server,这将导致nvarchar(500)数据类型正被使用。
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; }
}