Qual è il modo corretto per eliminare tutti gli elementi di raccolta di un'entità EF? Nel seguente codice, DocumentItems è la raccolta di elementi di documento correlati per un documento. Questo codice procede su Clear() ma fallisce su SaveChanges() perché gli elementi correlati sono connessi al loro documento tramite FK e FK è obbligatorio. Quindi immagino che in qualche modo rimangano sospesi in aria senza una chiave esterna dopo Clear().Metodi EntityCollection Clear() e Remove()
Risolvo questo con un ciclo foreach sopra la raccolta chiamando Remove() su ciascun elemento o c'è un altro modo?
// remove existing document items to prepare for refreshing them
existing.DocumentItems.Clear();
// adds new Document Items
PrepareInvoice(existing, collection);
_repository.SaveChanges();
Per prima cosa penso che sia ironico parlare di come "Clear" non è chiaro. La mia comprensione è che sono diversi. Clear dice solo rimuovere il puntatore (in memoria) di questi oggetti. 'Rimuovi' dice rimuovi dalla mia lista e segna per la cancellazione ... per favore correggimi se ho detto qualcosa di non valido. – Nix