ExpertiDict

C# · Avançado · Inglês · Técnico

optimistic concurrency

/ˌɑptɪˈmɪstɪk kənˈkɝənsi/substantivo

Estratégia do EF Core que não bloqueia linhas: usa um token de concorrência, como rowversion, e se o registro mudou desde a leitura, SaveChanges lança DbUpdateConcurrencyException.

Onde usar

Aparece quando dois usuários editam o mesmo registro e o último não deve sobrescrever o primeiro. Marque uma propriedade com [Timestamp] ou IsConcurrencyToken e trate a exceção reconciliando ou pedindo nova leitura.

Em código

using System.ComponentModel.DataAnnotations;

class Livro
{
  public int Id { get; set; }
  [Timestamp]
  public byte[] Versao { get; set; } = [];
}

Exemplos

We use optimistic concurrency with a rowversion column.

Usamos concorrência otimista com uma coluna rowversion.

SaveChanges threw a concurrency exception.

O SaveChanges lançou uma exceção de concorrência.

Cuidado

Não confunda com bloqueio pessimista: aqui ninguém espera, o conflito só é detectado na hora de gravar.

Sinônimos

concorrência otimista

Antônimos

bloqueio pessimista

Veja também

Todos os termos de C#