es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

EF Core aleatoriamente recorre las tablas de usuario en las solicitudes de API después de la migración de .NET Core 2.2 a 3.1.

Después de migrar de .NET Core 2.2 a 3.1, EF Core comenzará aleatoriamente a rastrear la tabla de usuarios y crear cientos / miles de registros (ver imagen, el registro específico está resaltado en azul en la parte inferior).

He seguido las guías de migración de Microsoft, como 2.2 a 3.0 y 3.0 a 3.1 (Ejemplo: https://learn.microsoft.com/da-dk/aspnet/core/migration/22-to-30?view=aspnetcore-2.1&tabs=visual-studio).

Información importante: Esto comenzó a suceder después de que agregué app.UseAuthorization(); en Startup.cs, lo cual no estaba allí antes.

¿Alguna idea de qué podría desencadenar esto?

Esto resulta en el siguiente error después de unos 30 segundos: 504 Gateway Time-out.

Estoy usando NuGet AspNet.Security.OpenIdConnect.Server.

Actualización: Parece suceder en Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException: Database operation expected to affect 1 row(s) but actually affected 0 row(s). Por lo tanto, erradicar esa excepción debe solucionarlo, pero sería muy cuidadoso al enviar esta migración al servidor de producción, si alguna excepción puede hacer que EF Core comience a rastrear sin cesar.

Imagen: https://i.stack.imgur.com/CuWwF.png

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Es posible que el middleware app.UseAuthorization() esté causando el problema. Este middleware es responsable de autorizar solicitudes y podría estar haciendo que EF Core comience a rastrear la tabla de Usuarios.

    También es posible que el problema esté relacionado con la excepción Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException. Esta excepción se lanza cuando el número de filas afectadas no es igual al número de filas esperadas. Es posible que esta excepción esté haciendo que EF Core comience a rastrear la tabla de Usuarios.

    Para resolver el problema, deberías intentar erradicar la excepción Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException. Si esto no resuelve el problema, deberías intentar eliminar el middleware app.UseAuthorization() de tu archivo Startup.cs.

Comments are closed.