在不公开外键的情况下执行一对多关系的删除时,EF 会删除父记录并尝试使子记录上的外键为空。这当然会导致错误,因为外键不可为空。将外键添加到子类会覆盖此行为,但我宁愿不公开它。
例如,给定以下两个类,我不希望 JobId 作为 Project 类的属性。
public class Job : ModelBase
{
[Required]
[StringLength(100)]
public string Company { get; set; }
[Required]
[StringLength(100)]
public string JobTitle { get; set; }
public ICollection<Project> Projects { get; set; }
}
public class Project : ModelBase
{
[Required]
[StringLength(100)]
public string Name { get; set; }
[Required]
public string Summary { get; set; }
public int JobId { get; set; }
}
有没有办法在 EF Code First 中启用级联删除而不在关系的多方面暴露外键?