c# - DataContext.Connection 是否跨不同的 Datacontexts 共享设置
问题描述
在使用 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 查询的死锁优先级,而不强制执行新事务,或者这通常是不明智的?
解决方案
推荐阅读
- linux - 后缀,编辑 sasl_passwd,现在电子邮件没有中继
- php - 致命错误未捕获的错误:调用未定义的方法 WP_Error
- .net - C++ CLR NuGet 包错误:安装失败
- django - Django rest_framework oAuth2 APIView 错误
- javascript - 如何将单选按钮选择添加到 Tabulator 表中?
- python - 字符串从拉丁文更改为 ASCII
- r - 向数据框列表中的每个数据框添加一个新行 R
- react-native - React Native 中的简单导航栏/标题栏?
- rollup - 更换代码后出现TS2367错误怎么处理?
- vb.net - 编辑文本文件并使用编辑保存文本文件