Comment éviter les conflits de mise à jour lors de la mise à jour du même logging en même time

Je suis en train de concevoir un système d'inventaire avec Entity Framework et SQL Server. Cette application sera utilisée par des milliers d'users. Comment puis-je concevoir une application / database qui permettra aux users de mettre à jour les mêmes données d'inventaire en même time? Pour l'instant, par souci de cohérence, j'utilise le versioning des lignes, mais cela provoque souvent des erreurs de "mise à jour des conflits".

En savoir plus sur Retry Pattern ( voici mon article à ce sujet). Avec lui, vous pouvez détecter les conflits et faire une dessicion quoi faire (réécrire, merge ou jeter l'erreur à l'user).

Exemple d'utilisation:

var retryCount = 3; var currentRetry = 0; using (var context = new DbContext(ConnectionSsortingng)) { var user = context.Set<User>().First(o => o.Id == 1); user.Login = "newuserlogin"; do { try { currentRetry++; context.SaveChanges(); break; } catch (DbUpdateConcurrencyException ex) when (currentRetry <= retryCount) { //conflict detected var entry = ex.Ensortinges.Single(); //rewrite values from database entry.OriginalValues.SetValues(entry.GetDatabaseValues()); } } while (true); }