从数据库中的多个表中删除多个记录

时间:2018-12-20 18:30:18

标签: c# asp.net asp.net-mvc asp.net-mvc-4

这是我到目前为止的两天中的第三个问题,尽管计划安排是主要原因。 我的数据库“ 学校”,“ 联系人”,“ 电子邮件”和“ 电话”中有四个表。当我删除其中有2个联系人的学校时,“删除”按钮可以正常工作(假设“联系人”没有任何电话或电子邮件),但是当我尝试删除有2个联系人的学校时,可以说,每个手机只有1个电话和电子邮件,无法正常工作。 所以我的问题是,如何删除有关学校的信息(从表“ 学校”中删除)以及有关雇员的信息,这些信息仍保留在表“ 联系人”,“ < strong>电子邮件”,“ 电话”。

所以,我有1所学校,其中有2个联系人(id 1,id 2),而这些联系人有2个Phones,而我成功删除了这两个联系人,因为他们的学校ID为1,但我没有知道如何删除电话(因为它们的联系人ID与第一个联系人的ID不同)。

我正在向您发送“学校”类,我的代码变量是用塞尔维亚语编写的。

public partial class Skola
{

public Skola()
{
this.Kontakt = new HashSet<Kontakt>();
}

public int SkolaID { get; set; }
public string NazivSkole { get; set; }
public string AdresaRegistracije { get; set; }
public string Opstina { get; set; }
public Nullable<int> PostanskiBroj { get; set; }
public string MaticniBrojSkole { get; set; }
public string PIB { get; set; }
public string BrojRacunaSkole { get; set; }
public string WebStranica { get; set; }
public byte[] Fotografija { get; set; }
public string Beleska { get; set; }


public virtual ICollection<Kontakt> Kontakt { get; set; }
}

这是“联系人”类(具有对于“电子邮件”和“电话”表很重要的ID)

public partial class Kontakt
{
public Kontakt()
{
this.MailAdresa = new HashSet<MailAdresa>();
this.Telefon = new HashSet<Telefon>();
}

public string Ime { get; set; }
public string Prezime { get; set; }
public string RadnoMesto { get; set; }
public int SkolaID { get; set; }
public int KontaktID { get; set; }

public virtual Skola Skola { get; set; }

public virtual ICollection<MailAdresa> MailAdresa { get; set; }

public virtual ICollection<Telefon> Telefon { get; set; }
}

“电子邮件”和“电话”类...

public partial class MailAdresa
{
public string Adresa { get; set; }
public string OznakaTipaMail { get; set; }
public int KontaktID { get; set; }

public virtual Kontakt Kontakt { get; set; }
}


public partial class Telefon
{
public string BrojTelefona { get; set; }
public string OznakaTipa { get; set; }
public string Lokal { get; set; }
public int KontaktID { get; set; }

public virtual Kontakt Kontakt { get; set; }
}


And the controller that performs deleting.

Controller(它不允许我添加代码,因此请检查图像)

非常感谢您。

1 个答案:

答案 0 :(得分:0)

因此,您的问题是删除子项之前先删除子项。

这个问题是一样的: How to delete child entities before parent with Entity Framework CF?

相关问题