Mam jeden-do-wielu jednokierunkowych relacji między Kontakt i telefonu zdefiniowany następująco:Jednokierunkowy jeden-do-wielu z Code First
class Contact {
int ContactId {get; set}
ICollection<Phone> Phones {get; set}
}
class Phone {
int PhoneId {get; set;}
string PhoneNumber {get; set;}
}
Teraz w warstwie domeny, próbuję aby wykonać następujące czynności:
someContact.Phones.Remove(somePhone);
i gdy próbuję zadzwonić context.SaveChanges()
uzyskać wyjątek, ponieważ związek jest określony jako wymagany (np. telefon nie może istnieć bez kontaktu).
Jak mogę to rozwiązać bez użycia klucza obcego lub właściwości nawigacji w telefonie i bez potrzeby dzwonienia pod numer DbSet<Phone>.Remove(Phone)
przed dzwonieniem pod numer SaveChanges()
?
nie można po prostu dodać 'RemovePhone()' -Method się skontaktować? I co chcesz zrobić, jeśli Pan i Pani Smith są w bazie danych z tym samym telefonem i tylko Pan Smith usuwa swoje konto? – efkah
Czy chcesz, aby telefon został usunięty z bazy danych lub po prostu usunięty z kontaktu? Jak EF powinien wiedzieć, że telefon powinien zostać usunięty, jeśli nie zdefiniujesz relacji między nim a kontaktami? – lintmouse