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.

BeginTransaction devuelve una cadena de conexión nula.

Utilizo el ORM Dapper con unidad de trabajo, utilizando el procesamiento IDbConnection/IDbTransaction (Cerrar/Confirmar/Revertir).

“` c#
public IDbTransaction BeginTransaction(string connectionName = "", bool useWadminUser = false, IsolationLevel isolationLevel = IsolationLevel.ReadCommitted)
{
using (DbConnection db = GetDbconnection(connectionName, useWadminUser))
{
db.Open();
<em>dbTransaction = db.BeginTransaction();
}
return this.</em>dbTransaction;
}

DbConnection GetDbconnection(string connectionName = "", bool useWadminUser = false)
{
UserInfoHelper userInfoHelper = <em>iSecurityAuthorizService.GetCookieProfileUser();
return new SqlConnection(
string.Format(</em>config.GetConnectionString(string.IsNullOrEmpty(connectionName) ? SqlHelper.DefaultConnection : connectionName),
SqlHelper.WadminUserName, SqlHelper.WadminPassword));
}
“`

Llamo al servicio var tran= _dapper.BeginTransaction();
pero tran es nulo.
Por favor, revise esta imagen: enlace

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Del fragmento de código proporcionado, parece que el método BeginTransaction está devolviendo el objeto _dbTransaction, pero no se está asignando a la variable tran al llamar a var tran = _dapper.BeginTransaction();. Esto podría ser debido a algunas razones:

    • El método GetDbconnection podría devolver null o lanzar una excepción, lo que hace que el bloque using salga sin asignar el objeto _dbTransaction.
    • El objeto _dbTransaction podría no haber sido inicializado correctamente antes de llamar a var tran = _dapper.BeginTransaction();.

    Para depurar este problema, podrías agregar algunas declaraciones de registro al método BeginTransaction y verificar si el objeto _dbTransaction se está inicializando correctamente. También podrías verificar el valor de retorno del método _iSecurityAuthorizService.GetCookieProfileUser() y asegurarte de que no sea nulo.

    Además, podría ser útil revisar la documentación y ejemplos para usar Dapper con un patrón de unidad de trabajo para asegurarse de que la implementación sea correcta.

Comments are closed.