对所有Linq DataContexts使用开放连接

时间:2011-06-22 08:28:29

标签: linq linq-to-sql

我正在开发一个大型网站,当我用SQL Profiler检查linq查询时,我发现大约有30个登录/注销操作。我想通过对所有DataContexts使用开放连接来减少这些操作,但我不知道该怎么做。你有什么建议吗?

1 个答案:

答案 0 :(得分:1)

这是一个非常糟糕的主意 - 你正在创建大型可扩展网站,所以让Linq-to-sql自己处理连接。

Linq-to-sql内部处理连接打开并以有效的方式释放它。它使用默认的ADO.NET连接池,因此连接可以正确地重用,而不是为每个单独的上下文打开。

对所有上下文使用单一连接正是使您的应用程序无法扩展且无法正常工作的原因。单一连接只允许单个事务,因此一旦两个请求想要进行并发更改并使用自己的事务,您的应用程序就会崩溃。

不共享上下文并且不共享连接 - 让ADO.NET处理连接池并为每个请求创建新上下文,否则您可能会遇到严重问题。