C# 用Attribute实现AOP事务 [C# | AOP | Attribute | ContextAttribute | IContributeObjectSink | IMessageSink ]
阅前注意
1.整篇文章的核心和突破点在于上下文Context的使用,务必注意CallContext在整个程序中起到的作用
2.本文中看到的SqlHelper使用的是微软SqlHelper.cs。
3.本文重点在于如何实现,并且已经测试通过,只贴关键性代码,所以请认真阅读,部分代码直接拷贝下来运行是会出错的!
正文
首先我们来看一段未加事务的代码:
SqlDAL.cs
public abstract class SqlDAL { #region ConnectionString private SqlConnectionStringBuilder _ConnectionString = null; /// <summary> /// 字符串连接 /// </summary> public virtual SqlConnectionStringBuilder ConnectionString { get { if (_ConnectionString == null || string.IsNullOrEmpty(_ConnectionString.ConnectionString)) { _ConnectionString = new SqlConnectionStringBuilder(Configurations.SQLSERVER_CONNECTION_STRING); } return _ConnectionString; } set { _ConnectionString = value; } } #endregion #region ExecuteNonQuery public int ExecuteNonQuery(string cmdText) { return SqlHelper.ExecuteNonQuery(ConnectionString.ConnectionString, CommandType.Text, cmdText); } public int ExecuteNonQuery(string cmdText, CommandType type) { return SqlHelper.ExecuteNonQuery(ConnectionString.ConnectionString, type, cmdText); } public int ExecuteNonQuery(string cmdText, CommandType type, params SqlParameter[] cmdParameters) { return SqlHelper.ExecuteNonQuery(ConnectionString.ConnectionString, type, cmdText, cmdParameters); } #endregion
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索c#
, public
, connectionstring
, executenonquery
, commandtype
, sqlhelper
, connectionStrings
ExecuteNonQuery()
c站、c语言、cf、ch、c罗,以便于您获取更多的相关知识。