- 必须的和可选的属性
- 惯例
- 数据注解
- 流式 API
必须的和可选的属性
如果属性值可以设置为 null,则其被认为是可选的(可空的)。相反,如果属性值设置为 null 是非法的,那么它就被认为是必须的属性。
惯例
按照惯例,值可以是 null 的运行时类型(string、int?、byte[] 等等)属性将被配置为可选。值不能为 null 的运行时类型(int、decimal、bool 等等)属性则将被配置为必须。
注意
值不能为
null的运行时类型属性是无法被配置为可选的。这样的属性将总是被 Entity Framework 认为是必须的。
数据注解
可以使用数据注解将属性标注为必须。
public class Blog{public int BlogId { get; set; }[Required]public string Url { get; set; }}
流式 API
可以使用流式 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; }}
