CallContext 跨邊界傳遞交易物件。SqlHelper.cs 封裝資料存取。
public abstract class SqlDAL
{
private SqlConnectionStringBuilder _connStr;
public virtual SqlConnectionStringBuilder ConnectionString
{
get
{
if (_connStr == null || string.IsNullOrEmpty(_connStr.ConnectionString))
_connStr = new SqlConnectionStringBuilder(Configurations.SQLSERVER_CONNECTION_STRING);
return _connStr;
}
set { _connStr = value; }
}
public int ExecuteNonQuery(string cmdText)
=> SqlHelper.ExecuteNonQuery(ConnectionString.ConnectionString, CommandType.Text, cmdText);
public int ExecuteNonQuery(string cmdText, CommandType type)
=> SqlHelper.ExecuteNonQuery(ConnectionString.ConnectionString, type, cmdText);
public int ExecuteNonQuery(string cmdText, CommandType type, params SqlParameter[] pars)
=> SqlHelper.ExecuteNonQuery(ConnectionString.ConnectionString, type, cmdText, pars);
}
此為後續加入 AOP 事務的基礎,下一篇將引入 ContextBoundObject、CallContext、TransactionAop 等核心組件。