При выполнении удаления отношения один-много без раскрытия внешнего ключа 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Во-первых, не раскрывая внешний ключ на многих сторонах отношений?