c# - Linq 到 SQL 连接

标签 c# linq linq-to-sql sqlconnection

我正在将 Linq to SQL 用于一个相当复杂的站点,上线后我们遇到了多次数据库超时。我注意到的第一件事是有相当多的数据库连接。

来自 ADO.net 背景,我们过去常常对其进行编码,以便任何站点都只使用一两个池连接,即使并发用户数量相当少,这也会产生可接受的性能。

所以我的问题是,这种旧的做法是否有缺陷,或者有没有办法通过 LINQ 来做到这一点?看来我们的性能问题是由如此多的数据库连接引起的,但如果这是一个问题,我想它会在所有 LINQ 教程中提到。

有什么建议吗?

最佳答案

我猜测您保留了 DataContext,并且在完成后没有对它们调用 Dispose(或者至少将它们留在周围)。

相反,您应该初始化 DataContext,执行操作,然后在完成后将其释放。您不应该在操作之间保留对它的引用。

您最好使用 using 语句来处理对 IDisposable 的调用。

关于连接池,SqlClient 默认情况下会池连接,因此除非您明确将其关闭,否则您应该已经在利用它了。当然,如果您不释放正在使用的连接,那么池化只能带您到目前为止。

关于c# - Linq 到 SQL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/639820/

相关文章:

c# - 通过使用 LINQ 2 XML 对某个字符串进行计数来生成文件的 xml 属性值?

c# - 如何在 .NET 中以编程方式密码保护 pdf?

c# - 将匿名集合放入类中

c# - linq 中的子查询和分组依据

c# - 使用新的架构更改更新 LinqtoSql 数据库?

c# - Databound CheckBoxList 中的第一项未显示

c# - 如何使用 Booksleeve 从 Redis 返回 C# 位数组

c# - Linq 无法转换问题

c# - 使用 linq 按具有空数据值的日期进行分组

database - 将此 SQL 查询转换为 LINQ 查询