这两个问题的答案与我自己的答案非常接近,但还没有完全达到。
既然我知道SqlConnection
状态不仅仅是打开和关闭,我想知道在关闭不在 using 语句中的连接时是否需要这样做:
switch (_transactionConnection.State)
{
case ConnectionState.Broken: /*??*/ ; break;
case ConnectionState.Closed: ; break;
case ConnectionState.Connecting: /*??*/ ; break;
case ConnectionState.Executing: /*??*/ ; break;
case ConnectionState.Fetching: /*??*/ ; break;
default: _transactionConnection.Close(); break;
}
SqlConnection _transactionConnection
不在using
语句内,因为我需要从此类外部启动、提交和回滚事务。此类实现IDisposable
并且 switch 语句位于Dispose(bool disposing)
MSDN 说除了 open 和 closed 之外的状态是用于产品的未来版本,但 @Charlie 说反射器显示其他状态正在使用中。
谁能告诉我应该换/*??*/
什么?(我希望我的最终 switch 语句将显式处理 Open 和 Closed 情况,如果/*??*/
其他状态相同,那将是我的默认情况。)