Я хочу реализовать Cascade для удаления функциональности для базового шаблона asp.net.Но я не могу этого сделать?Вот что я сделал для этого.
Компания является родительским классом:
public class Company:FullAuditedEntity<long>
{
public string CompanyName { get; set; }
public string EmployeesCount { get; set; }
public virtual ICollection<Employees> Employees { get; set; }
}
Сотрудник - это дочерний класс, имеющий отношения один-ко-многим с классом Company.
public class Employees:FullAuditedEntity<long>
{
public string EmployeeName { get; set; }
public string Salaray { get; set; }
[ForeignKey("Company")]
public long CompanyId { get; set; }
public virtual Company Company { get; set; }
}
Вот что я сделал в классе Dbcontext для реализации функциональности Cascade on Delete.
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Employees>()
.HasOne(e => e.Company)
.WithOne()
.OnDelete(DeleteBehavior.Cascade).HasForeignKey<Employees>(t=>t.CompanyId);
}
Но когда я удаляю запись для родительского объекта (Company), соответствующая запись издочерняя таблица (Сотрудник) не удаляется.