Angenommen, ein Kunde hat viele Telefonnummern und eine Telefonnummer hat nur einen Kunden.Entity Framework richtige Möglichkeit, Sammlung in einem zu ersetzen viele
public class PhoneNumber : IValueObject {
public string Number {get; set;}
public string Type {get; set;}
}
public class Customer : IEntity {
public ICollection<PhoneNumber> phones {get; private set;} //ew at no encapsulated collection support
public void SetPhones(params PhoneNumber[] phones) {
this.phones.Clear();
this.phones.AddRange(phones);
}
}
Wenn ich ein EF-Mapping wie dies tun, und führen Sie es, jedes Mal wenn ich Telefonnummern setzen sie neue Phonenumbers erstellen, aber die alten nicht löschen. Es gibt keine anderen Entitäten, die auf Telefonnummern verweisen, ich stelle sie nicht einmal auf meinem dbcontext offen, gibt es eine Möglichkeit, EF mitzuteilen, dass Customer
vollständig PhoneNumbers
besitzt und daher, wenn Telefonnummern aus der Sammlung entfernt wurden, sollten sie gelöscht werden?
Ich weiß, dass ein Dutzend Möglichkeiten gibt es, um dieses Problem zu hacken, aber dies ist nicht ein seltsamer Rand Fall, was der „richtige“ Weg, dies zu handhaben.
Ich denke, umgekehrt ist möglich, wenn Sie Telefonnummern löschen würde Form dbset und Cascade auf löschen ist dann wird es in was genau Sie wollten :) –
@JenishRabadiya Ich denke, dass mit Kaskade auf löschen könnte ich vielleicht Telefonnummern haben speziell über Änderung gelöscht, wenn 'Customer' zu löschen, aber das ist ... –
Bitte senden Sie das Teil des Codes, wo Sie versuchen, eine' PhoneNumber' von einem 'Customer' zu entfernen. –