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: 3345|Respuesta: 1

[Fuente] Resuelto el error Dapper.Contrib "El valor es demasiado grande o demasiado pequeño para Int32"

[Copiar enlace]
Publicado en 6/8/2023 14:04:48 | | | |
Requisitos: Al usar Dapper.Contrib para ejecutar el método Insert, el valor de retorno de un solo dato insertado para el campo de clave primaria auto-incrementante es el valor posterior a la inserción, y cuando el valor de retorno es mayor que 2147483647, Dapper.Contrib lanzará la excepción "El valor es demasiado grande o demasiado pequeño para Int32".

Al usar Dapper.Contrib para insertar datos, aparece el error "El valor es demasiado grande o demasiado pequeño para Int32", ¡y la base de datos ha sido insertada con éxito! sospechaba que era un problema con el framework ORM, luego busqué en GitHub y vi que era un problema conocido,El equipo de Dapper no lo ha solucionado porque teme que tenga un impacto excesivo, y otros autores han proporcionado relaciones públicas a Dapper, pero también ha sido cerrado, como se muestra en la figura siguiente:

El inicio de sesión del hipervínculo es visible.



La razón de la excepción es que, tras obtener el auto-valor añadido, tomando como ejemplo el adaptador SQL Server, el cast se convierte en un error de tipo int, y el valor máximo de int es (int. MaxValue): 2147483647, como se muestra en la figura de abajo:



Para reproducir el método, crea una nueva tabla, añade la clave primaria que empieza por 2147483648 y el script SQL es el siguiente:

Referenciando el paquete Dapper.Contrib, realiza la operación de inserción con el siguiente código:

El error es el siguiente:



solución

Sustituye Dapper.Contrib por el paquete Dapper.Contrib.Unofficial con el siguiente comando:

La prueba ya no da error, como se muestra en la siguiente figura:



Consejo: Dapper.Contrib.Unofficial no está completamente probado, ¡por favor pruébalo tú mismo antes de usarlo!

(Fin)





Anterior:Qv2ray conecta el servicio Trojan-Go en Windows
Próximo:SQL Server encuentra los datos que varchar convierte en error bigint
 Propietario| Publicado en 6/8/2023 14:14:21 |
Dirección modificada de GitHub:https://github.com/itsvse/Dapper.Contrib
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