外部キーを公開せずに1対多の関係の削除を実行すると、EFは親レコードを削除し、子レコードの外部キーをnullにしようとします。もちろん、外部キーはnull許容ではないため、これによりエラーが発生します。子クラスに外部キーを追加すると、この動作がオーバーライドされますが、公開したくありません。
たとえば、次の2つのクラスがある場合、ProjectクラスのプロパティとしてJobIdを使用したくないと思います。
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コードファーストでカスケード削除を有効にする方法はありますか?