Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 3308|Resposta: 0

[Fonte] Exceção de concorrência EF DbUpdateConcurrencyException consulta o valor em cache

[Copiar link]
Publicado em 01/11/2023 20:30:43 | | | |
Requisitos: Use bloqueios otimistas EF para controlar a concorrência; se encontrar concorrência, adicione um mecanismo de retentativa e descubra que os dados reconsultados após a tentativa são dados em cache EF, resultando em exceções sempre salvas.

Esperava-se que a operação do banco de dados afetasse 1(s) linha(s), mas na verdade afetava 0(s) linha(s); Os dados podem ter sido modificados ou excluídos desde que as entidades foram carregadas. VerO login do hiperlink está visível.para informações sobre como entender e lidar com exceções de concorrência otimista.

Essa discussão levou a reflexões sobre o EF 6.x e o cache de consultas do EF Core:O login do hiperlink está visível.

Lidar com a distinção concorrente entre Timestamp e Concurrency Check
https://www.itsvse.com/thread-3616-1-1.html

Como mostrado abaixo:



Script SQL:

ASP.NET Código backend do Core 6:

Código do Controlador:



Opção 1 (recomendada)

usarEntidadeEstado.SeparadaMarcando o estado da entidade como não sendo rastreado pelo contexto, modifique-o da seguinte forma:

Como mostrado abaixo:



Opção 2

Chame o método Reload() para atualizar o objeto entidade, o código é o seguinte:

Embora recarregar também possa atualizar os valores do cache EF,Isso resulta na execução de consultas SQL mais de uma vezPortanto, não é recomendado.

Os outros dois métodos, AsNoTracking, não são adequados e o outro não é testado.

(Fim)




Anterior:.NET converte a string varbinary do banco de dados em um array de bytes[]
Próximo:Configurações do OpenWRT para iniciar o comando de execução
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com