需要的/可选的属性
属性被认为是可选的,如果它包含null有效的。如果null不是一个有效的值分配给一个属性,那么它被认为是一个必需的属性。
在这文章:
必须的/可选的属性
公约
数据注解
Fluent API
公约
按照惯例,一个属性的CLR类型可以包含空值将被配置为可选(String,int?,字节[ ]等)。属性的CLR类型不能包含null将被配置为必须的(int,decimal,bool.等等)。
注意:
属性的CLR类型不能包含空值不能作为可选配置。该属性将总是被实体框架所需的。
数据注解
你能使用数据注解来表明这属性是必须的。
public class Blog
{
public int BlogId { get; set; }
[Required]
public string Url { get; set; }
}
Fluent API
你能使用Fluent API来表明属性是必须的
class MyContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>()
.Property(b => b.Url)
.IsRequired();
}
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
}