Quando salvo un'entità con Entity Framework, ho naturalmente pensato che avrebbe provato a salvare solo l'entità specificata. Tuttavia, sta anche tentando di salvare le entità figlio di quell'entità. Ciò sta causando tutti i tipi di problemi di integrità. Come faccio a forzare EF a salvare solo l'entità che voglio salvare e quindi a ignorare tutti gli oggetti figlio?
Se imposto manualmente le proprietà su null, viene visualizzato un messaggio di errore "Operazione non riuscita: la relazione non può essere modificata perché una o più proprietà della chiave esterna non sono annullabili". Questo è estremamente controproducente poiché ho impostato l'oggetto figlio su null in modo specifico in modo che EF lo lasci da solo.
Perché non voglio salvare / inserire gli oggetti figlio?
Poiché questo viene discusso avanti e indietro nei commenti, fornirò alcune giustificazioni del motivo per cui voglio che gli oggetti di mio figlio vengano lasciati in pace.
Nell'applicazione che sto creando, il modello a oggetti EF non viene caricato dal database ma utilizzato come oggetti dati che sto popolando durante l'analisi di un file flat. Nel caso degli oggetti figlio, molti di questi fanno riferimento a tabelle di ricerca che definiscono varie proprietà della tabella padre. Ad esempio, la posizione geografica dell'entità principale.
Poiché ho popolato questi oggetti da solo, EF presume che si tratti di nuovi oggetti e che debbano essere inseriti insieme all'oggetto padre. Tuttavia, queste definizioni esistono già e non voglio creare duplicati nel database. Uso l'oggetto EF solo per eseguire una ricerca e popolare la chiave esterna nella mia entità di tabella principale.
Anche con gli oggetti figlio che sono dati reali, ho bisogno di salvare prima il genitore e ottenere una chiave primaria o EF sembra solo fare un pasticcio di cose. Spero che questo dia qualche spiegazione.