【发布时间】:2022-01-03 09:29:20
【问题描述】:
我在工作单元中使用小巧的 ORM
使用 IDbConnection/IDbTransaction 处理(关闭/提交/回滚)
public IDbTransaction BeginTransaction(string connectionName = "", bool useWadminUser = false, IsolationLevel isolationLevel = IsolationLevel.ReadCommitted)
{
using (DbConnection db = GetDbconnection(connectionName, useWadminUser))
{
db.Open();
_dbTransaction = db.BeginTransaction();
}
return this._dbTransaction;
}
DbConnection GetDbconnection(string connectionName = "", bool useWadminUser = false)
{
UserInfoHelper userInfoHelper = _iSecurityAuthorizService.GetCookieProfileUser();
return new SqlConnection(
string.Format(_config.GetConnectionString(string.IsNullOrEmpty(connectionName) ? SqlHelper.DefaultConnection : connectionName),
SqlHelper.WadminUserName, SqlHelper.WadminPassword));
}
我调用 service var tran= _dapper.BeginTransaction(); 但 tran 为空。 请看这个this pic1
【问题讨论】:
-
是的,它是空的。在您尝试使用它之前,您正在关闭并释放连接。
-
iam 使用关闭和处理但为空
-
您需要在
BeginTransaction和dbTransaction.Commit()之间执行您的SQL,否则您无法释放连接,否则事务会回滚。你也应该用using处理dbTransaction
标签: sql-server ado.net dapper