public void removeRiga(RigaCarrello rigaDacanc) { EntityState stato = OrmUtil.getEntityState(rigaDacanc, mioDbContext); // Rimuovo l'elemento dalla collezione. // Non so perché, ma essendo una relazione identificante, perché EF NON si preoccua di rimuovere anche da disco la riga da solo ?? // Dovrebbe chiamare la delete sul db, ma non lo fa! ... bool test = carrello.righeCarrello.Remove(rigaDacanc); if (!test) { _giornale.Error("Si è cercato di cancellare una riga dal carrello che non esiste. Probabilmente la riga era già stata eliminata dal carrello in precedenza"); throw new LumenException("La riga non è presente nel carrello"); } // ... per quanto sopra, se l'oggetto era persistente, devo preoccuparmi io di rimuoverlo anche dal dbcontext if (isStatoModifica == true && rigaDacanc.id != Guid.Empty) { if (stato == EntityState.Detached || stato == EntityState.Modified || stato == EntityState.Unchanged) { mioDbContext.RigheCarrelli.Remove(rigaDacanc); } } isCarrelloModificato = true; }