Защита от параллелизма транзакции (тип транзакции; Transaction IsolationLevel)
Компонент среднего уровня будет выполнять процедуры доступа к данным в приложении. Компонент вызовет несколько хранимых процедур SQL Server для выполнения обновлений базы данных. Все эти вызовы процедур выполняются под управлением одной транзакции. Код для среднего уровня будет реализовывать следующие объекты:
SqlCommand comm = connection.CreateCommand();
SqlTransaction trans;
Как добавить код в компонент, чтобы указать максимально возможный уровень защиты от таких ошибок (два пользователя пытаются одновременно обновлять одни и те же данные).
1 ответ
Решение
Ты используешь IsolationLevel
:
using (SqlConnection con = new SqlConnection(connectionString))
{
using (SqlTransaction tran = con.BeginTransaction(IsolationLevel.Serializable))
{
SqlCommand cmd = con.CreateCommand();
// etc...
con.Open();
}
}
Вам все еще нужно будет перехватить соответствующие исключения SQL...