Dapper.Net y el DataReader

.net dapper dapper-extensions exception sql

Pregunta

Tengo un error muy extraño con Dapper:

ya hay un DataReader abierto asociado con este comando que debe cerrarse primero

¡Pero no uso DataReader! Simplemente llamo a la consulta de selección en mi aplicación de servidor y tomo el primer resultado:

    //How I run query:
    public static T SelectVersion(IDbTransaction transaction = null)
    {
        return DbHelper.DataBase.Connection.Query<T>("SELECT * FROM [VersionLog] WHERE [Version] = (SELECT MAX([Version]) FROM [VersionLog])", null, transaction, commandTimeout: DbHelper.CommandTimeout).FirstOrDefault(); 
    }

    //And how I call this method:
    public Response Upload(CommitRequest message) //It is calling on server from client
    {
            //Prepearing data from CommitRequest

            using (var tr = DbHelper.DataBase.Connection.BeginTransaction(IsolationLevel.Serializable))
            {
                int v = SelectQueries<VersionLog>.SelectVersion(tr) != null ? SelectQueries<VersionLog>.SelectVersion(tr).Version : 0; //Call my query here
                int newVersion = v + 1; //update version

                //Saving changes from CommitRequest to db
                //Updated version saving to base too, maybe it is problem?

                return new Response
                {
                    Message = String.Empty,
                    ServerBaseVersion = versionLog.Version, 
                };
            }
        }
    }

Y lo más triste es que esta excepción que aparece en el tiempo aleatorio, creo que es el problema en el acceso simultáneo al servidor de dos clientes.

Por favor ayuda.

Respuesta popular

Esto ocurre algunas veces si el modelo y el esquema de la base de datos no coinciden y se genera una excepción dentro de Dapper.

Si realmente quieres entrar en esto, la mejor manera es incluir la fuente apresurada en tu proyecto y depurar.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué