J'ai une liste d'objets mis à jour. Et j'ai essayé de mettre à jour tous les enregistrements avec un seul appel de base de données. (Une commande context.SaveChanges()). Ce programme s'exécute dans un service Windows. Mon problème est au lieu de mettre à jour je multiplie tous les enregistrements sur la base de données et en ajoutant des doublons. Voici mon code.Mise à jour par lots d'une liste de structures d'entités d'enregistrement
//adding the list of updated customer objects to the list
context_CLTUS.Customer_Updates.AddRange(list.customerUpdateList);
foreach (var j in list.customerUpdateList)
{
//calling entity state modify for each record
context_CLTUS.Entry(j).State = EntityState.Modified;
}
//save updated list in one db call.
context_CLTUS.SaveChanges();
Je ne peux pas expliquer pourquoi tous les enregistrements sont dupliqués au lieu de la mise à jour. Pourriez-vous s'il vous plaît expliquer et m'aider à ce sujet. Je vous remercie.
seule chose dont vous avez besoin est context_CLTUS.SaveChanges(); supprimer le reste des choses –
Que se passe-t-il si vous supprimez l'appel 'AddRange'? –
En supprimant 'AddRange' travaillé pour moi merci pour les commentaires! – thilanka1989