Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 3308|Respuesta: 0

[Fuente] La excepción de concurrencia EF DbUpdateConcurrencyException consulta el valor almacenado en caché

[Copiar enlace]
Publicado en 1/11/2023 20:30:43 | | | |
Requisitos: Utilizar bloqueos optimistas EF para controlar la concurrencia; si se encuentra concurrencia, añadir un mecanismo de reintento y comprobar que los datos consultados tras el reintento son datos almacenados en caché de EF, lo que siempre se guarda excepciones.

Se esperaba que la operación de la base de datos afectara a 1(es) fila(s), pero en realidad afectó a 0(s); Los datos pueden haber sido modificados o eliminados desde que se cargaron las entidades. VerEl inicio de sesión del hipervínculo es visible.Para información sobre cómo entender y gestionar excepciones de concurrencia optimista.

Esta discusión llevó a reflexiones sobre EF 6.x y la caché de consultas EF Core:El inicio de sesión del hipervínculo es visible.

Gestión de la distinción concurrente entre Timestamp y Concurrency Check
https://www.itsvse.com/thread-3616-1-1.html

Como se muestra a continuación:



SQL script:

ASP.NET Código backend de Core 6:

Código del controlador:



Opción 1 (recomendada)

usoEntidadEstado. SeparadaMarcando el estado de la entidad como no rastreado por el contexto, modifícalo de la siguiente manera:

Como se muestra a continuación:



Opción 2

Llama al método Reload() para actualizar el objeto entidad, el código es el siguiente:

Aunque recargar también puede actualizar los valores de la caché de EF,Esto da lugar a la ejecución de consultas SQL más de una vezPor lo tanto, no se recomienda.

Los otros dos métodos, AsNoTracking, no son adecuados y el otro no está probado.

(Fin)




Anterior:.NET convierte la cadena varbinary de la base de datos en un array de bytes[]
Próximo:Configuración de OpenWRT para arrancar el comando de ejecución
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com