Как реализовать Cascade на Delete, используя Asp.coreBoilerplate Entity Framework? - PullRequest
0 голосов
/ 03 октября 2018

Я хочу реализовать 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), соответствующая запись издочерняя таблица (Сотрудник) не удаляется.

...