Разделяет ли DataContext.Connection настройки для разных Datacontexts? - PullRequest
0 голосов
/ 05 июня 2018

При использовании linq2sql для доступа к базе данных я создаю новый DataContext.Насколько я понимаю, базовый DBConnection объединен и может использоваться повторно.

using (var dc = new DB_DataContext())
{ 
    //dc.Connection may be persistent across multiple DataContexts
}

Теперь я обнаружил в различных блогах и здесь, на stackoverflow, что можно изменять некоторые свойства соединения безнакладные расходы на транзакцию:

// the following query should preferably be terminated, 
// in case of a deadlock with a more important query
dc.ExecuteCommand("SET DEADLOCK_PRIORITY LOW");

// the following query should be aborted, if it takes too long to acquire the locks
dc.ExecuteCommand("SET LOCK_TIMEOUT 50");

// the following query can handly dirty reads and should not acquire read locks
dc.ExecuteCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED");

Но это кажется мне довольно опасным.

Действительно ли безопасно выполнять эти команды в текущем DataContext или это «отравляет» соединениебассейн с нестандартными подключениями?Возможно ли, что эти настройки сохраняются в разных DataContexts?

Если да, то есть ли безопасный способ, например, изменить приоритет взаимоблокировки для запроса linq2sql, не форсируя новую транзакцию, или это обычно не рекомендуется?

...