none
Cancellare e ricreare oggetti in un DataContext RRS feed

  • Domanda

  • ciao,

    ho un datacontext di elementi legati da relazione master-details (per es: veicoli-passeggeri). 

    per aggiornare i dati, dovrei cancellare alcuni elementi, e reinserirli nel datacontext, con le stesse chiavi.

    Per prima cosa, mi ricavo gli oggetti da eliminare e faccio le seguenti operazioni

    DataContext.Passeggeri.DeleteObject(p)
    ...
    DataContext.Veicoli.DeleteObject(v)
    

    Poi, ricostruisco gli oggetti e li inserisco nel datacontext

    Dim newV = New Veicolo
    newV.ID = [stesso ID del veicolo cancellato]
    DataContext.Veicoli.AddObject(newV)
    
    Dim newP = New Passeggero
    newP.ID = [stesso ID del passeggero cancellato]
    newP.IDVeicolo = [stesso ID del veicolo cancellato]
    DataContext.Passeggeri.AddObject(newP)
    
    DataContext.SaveChanges(SaveOptions.AcceptAllChangesAfterSave)

    quando provo a salvare i dati, ho questo messaggio di errore".

    Impossibile inserire o aggiornare un'entità perché l'estremità principale della relazione 'DataContext.FK_PASSEGGERI_VEICOLI' è stata eliminata.


    come posso correggere questo errore?

    venerdì 6 dicembre 2019 09:25