System.InvalidOperationException: BeginExecuteNonQuery requires the command to have a transaction when the connection assigned to the command is in a pending local transaction. The Transaction property of the command has not been initialized.
public async Task<int> AddAsync(AbnormalCodeMaster entity)
{
//using (var connection = CreateConnection())
DynamicParameters param = new DynamicParameters();
using (var connection = new SqlConnection(DbConnectionString))
{
//Begin the transaction
await connection.OpenAsync();
var transaction = await connection.BeginTransactionAsync();
try
{
param.Add("@AbnormalCode", entity.AbnormalCode);
param.Add("@Description", entity.Description);
param.Add("@IsActive", entity.IsActive);
string abnormalCodeQuery = MasterQuaries<AbnormalCodeMaster>.InsertUpdateQuaries(SQLTables.AbnormalCodeMaster.ToString(), AuditAction.Insert.ToString());
//string abnormalCodeQuery = "INSERT INTO AbnormalCodeMaster ([AbnormalCode],[Description],[IsActive]) OUTPUT Inserted.Id VALUES (@Abnormalcode,@Description,@IsActive)";
//string abnormalCodeQuery = "insert into "
var abnormalResponse = await connection.ExecuteAsync(abnormalCodeQuery);
if (abnormalResponse > 0)
{
var auditTrail = new AuditTrail()
{
TableId = abnormalResponse,
TableName = SQLTables.AbnormalCodeMaster.ToString(),
Action = AuditAction.Insert.ToString(),
CreatedBy = entity.CreatedBy,
CreatedDate = DateTime.Now,
};
string auditQuery = MasterQuaries<AuditTrail>.InsertUpdateQuaries(SQLTables.AuditTrail.ToString(), AuditAction.Insert.ToString());
var auditResponse = await connection.ExecuteAsync(auditQuery, transaction);
if (auditResponse > 0)
{
await transaction.CommitAsync();
}
else
{
await transaction.RollbackAsync();
// roll the transaction back
}
}
return abnormalResponse;
}
catch (Exception ex)
{
//transaction.Rollback();
throw;
}
}
}