Я думаю, что это должно работать, если вы хотите удалить пользователей и администраторов, если контакт удален:
public class User
{
public int ID { get; set; }
public int ContactId { get; set; }
public virtual Contact Contact { get; set; }
}
public class Contact
{
public int ID { get; set; }
public virtual List<User> Users {get; set;}
public Contact()
{
Users = new List<User>();
}
}
Хотя я считаю, что вы хотите сделать наоборот, что означает, что вам нужно сделатьКонтакт является зависимым объектом
public class User
{
public int ID { get; set; }
public bool IsAdmin {get; set;}
public virtual List<Contact> {get; set;}
public Contact()
{
Users = new List<User>();
}
}
public class Contact
{
public int ID { get; set; }
[ForiegnKey("Owner")]
public int UserId {get; set;}
public virtual User Owner {get; set;}
}
. Вы можете использовать другие типы наследования, кроме TPC, который я здесь использую, поскольку СУБД не поддерживает два взаимоисключающих внешних ключа