Ho un uno-a-molti unidirezionale tra il contatto e il telefono definita in questo modo:unidirezionale uno-a-molti con codice Prima
class Contact {
int ContactId {get; set}
ICollection<Phone> Phones {get; set}
}
class Phone {
int PhoneId {get; set;}
string PhoneNumber {get; set;}
}
Ora nello strato di dominio, ci provo effettuare le seguenti operazioni:
someContact.Phones.Remove(somePhone);
e quando provo a chiamare context.SaveChanges()
ottengo un'eccezione perché il rapporto è definito come richiesto (es. un telefono non può esistere senza un contatto).
Come posso risolvere questo senza utilizzare una chiave esterna o una proprietà di navigazione in Telefono e senza la necessità di chiamare DbSet<Phone>.Remove(Phone)
prima di chiamare SaveChanges()
?
Non si può semplicemente aggiungere un 'RemovePhone()' -Metodo a contattare? E cosa vuoi che succeda se Mr e Mrs Smith sono entrambi nel tuo database con lo stesso telefono e solo il signor Smith cancella il suo account? – efkah
Vuoi che il telefono sia cancellato dal database o semplicemente scollegato dal contatto? In che modo EF dovrebbe sapere che il telefono dovrebbe essere cancellato se non si definisce una relazione tra questo e i contatti? – lintmouse