映射零或一对多

在前面的例子中,没有人就不能存在汽车。如果你想让这个人在汽车方面是可选的怎么办?嗯,这很容易,知道如何做一对多。只需将 Car 中的 PersonId 更改为可为空即可:

public class Car
{
    public int CarId { get; set; }
    public string LicensePlate { get; set; }
    public int? PersonId { get; set; }
    public virtual Person Person { get; set; }
}

然后使用 HasOptional() (或 WithOptional() ,具体取决于你从哪 一方进行配置):

public class CarEntityTypeConfiguration : EntityTypeConfiguration<Car>
{
  public CarEntityTypeConfiguration()
  {
     this.HasOptional(c => c.Owner).WithMany(p => p.Cars).HasForeignKey(c => c.OwnerId);
  }
}