Ciao a tutti,
sto riscontrando un problema che non riesco a risolvere e spero che qualcuno possa darmi qualche dritta per uscirne fuori.
In questo momento sto utilizzando:
- Asp.Net Core 2.2
- Pomelo Entity Framework Core 2.2.6
Probabilmente provare ad aggiornare entrambi potrebbe essere la soluzione giusta ma dato che al momento ho altre priorità sul progetto vorrei evitare di fare assolutamente questo passaggio.
Di seguito intanto vi fornisco parte del codice dove avviene l'errore:
foreach (var gruppopartita in partiteLega.GroupBy(g => g.IdCompetizioneLega))
{
List<Formazioni> Formazione = new List<Formazioni>();
foreach (var partita in gruppopartita.ToList().Where(w => w.IdSquadraInCasa.Equals(squadra.IdSquadra) || w.IdSquadraFuoriCasa.Equals(squadra.IdSquadra)))
{
Formazione.AddRange(titolari.Union(panchina));
Formazione.ForEach(f => f.IdLega = idLega);
Formazione.ForEach(f => f.IdCompetizioneLega = gruppopartita.Key);
Formazione.ForEach(f => f.IdPartita = partita.IdPartita);
Formazione.ForEach(f => f.IdSquadra = squadra.IdSquadra);
Formazione.ForEach(f => f.modulo = modulo);
Formazione.ForEach(f => f.modulodoposostituzioni = modulo);
Formazione.ForEach(f => f.DataInserimento = DateTime.Now);
}
if (Formazione.Any())
{
_db.Formazioni.AddRange(Formazione);
await _db.SaveChangesAsync();
}
}
L'errore avviene esattamente in questo punto (alla prima esecuzione del ciclo più esterno va a buon fine poi va in eccezione):
await _db.SaveChangesAsync();
L'errore che mi viene restituito è il seguente:
"An error occurred while updating the entries. Duplicate entry {Id} for key 'PRIMARY'"
Sono già andato in debug più di una volta e sono sicuro che la lista
Formazione ogni volta viene resettata e svuotata.
La mia necessità è quella di dover inserire ad ogni ciclo (se vengono rispettate alcune condizioni) gli stessi elementi ma con solo alcuni valori modificati.
Nella tabella del DB la mia chiave primaria è il campo ID che ovviamente non sono io a valorizzare.
Ho provato ad inserire nella classe
Formazioni anche il campo
DataInserimento per valorizzarlo ogni volta con il valore della data corrente...sperando di riuscire a sbloccare questo problema ma senza successo.
Sapete darmi qualche consiglio per uscirne fuori???
Aiutooooooo :(