【发布时间】:2020-03-27 05:57:08
【问题描述】:
我需要删除一个已经创建事件的联系人,数据保存的结构如下
事件表
联系人表
我有一个名为 EventContacts 的单独表,用于管理事件和联系人之间的关系
事件类
public class Events
{
[Key]
public string id { get; set; }
public string title{ get; set; }
public string desc{ get; set; }
public virtual List<Contact> contacts{ get; set; }
}
联系人类
public class Contact
{
public string ContactId { get; set; }
public string name{ get; set; }
public string email{ get; set; }
}
我使用此代码删除联系人
using (var db= new DatabaseModel())
{
Contact contact = db.Contacts.Find(id);
db.Contact.Remove(contact);
db.SaveChanges();
}
要添加一个事件,我使用这个
List<Contact> cons = new List<Contact>();
foreach (ComboItem cmb in cbItems)
{
EventContact evntConts = new EventContact()
{
contId = cmb.contId,
evntId = eventidevntId
userId = userId,
};
cons.Add(evntConts);
}
UserEvent events = new UserEvent()
{
eventid= this.evntid,
title= txt_title.Text,
description = txt_des.Text,
evcontacts = cons
};
using (var db= new DatabaseModel())
{
db.Evnts.Add(evnt);
db.SaveChanges();
}
如果没有使用该用户创建的事件,则此代码可以正常工作,但如果我将用户添加到事件然后删除用户,则此代码不起作用。我该如何解决?
【问题讨论】:
-
我建议进行检查,看看联系人是否是任何事件的成员。如果不是,则删除。否则,您将删除在另一个表中有引用的帐户。另一个建议是将该用户从其所属的所有事件中删除.. 然后删除联系人。
-
您能否按照您在此处提到的顺序发布代码(将用户添加到事件然后删除)。另外,请发布错误消息。
-
@sam 我编辑了问题