0
我正在爲.NET項目建立一個連接工廠,我想問問最佳的方法是什麼。 我有一個問題,因爲表LOCKS(或他們說),因此我負責設置一個新的數據層(希望)沿着其他解決方案小問題。SQL連接/命令正確管理(避免表LOCKS)?
現在,代碼:
public sealed class ConnectionFactory
{
//Will be SQL only
private static SqlConnection sqlConnection = null;
private static string connectionString = ConfigurationManager.ConnectionStrings["Development"].ConnectionString;
public static SqlConnection GetConnection()
{
if(sqlConnection == null)
{
sqlConnection = new SqlConnection();
sqlConnection.Open();
}
return sqlConnection;
}
}
我將主要使用的程序,但可能有一個或另一個奇怪的要求,如果需要,我們將鍵入查詢,所以我覺得我有以某種方式添加一個SqlCommand:
private static SqlCommand sqlCommand = null;
public static SqlCommand GetCommand()
{
//Check if sqlConnection is not null (omitted)
if(sqlCommand == null)
{
sqlCommand = sqlConnection.CreateCommand();
}
return sqlCommand;
}
但是,該命令應該是靜態的嗎?或者我應該每次創建一個新的查詢將被執行? 思考避免鎖大多是否可以由多個命令或只有多個連接引起?我如何避免並正確處理這個問題?
我會開始將它用於查詢和過程,但在需要鎖的情況下,是否可以正確管理連接/命令來解決它?我在想,如果我只使用一個命令並且應用程序發送另一個請求,那麼在當前命令完成後該命令將「排隊」以運行(就像它是一個用戶同時運行多個查詢一樣) – Danicco