1

在我的项目中使用 linq to SQL 时,我目前在代码执行中尽可能晚地创建数据上下文并尽快处理它。这导致数据上下文在页面上多次打开和关闭。

另一种选择是在页面加载时打开数据类并在页面卸载时处理它,这样连接只打开和关闭一次。

两种方法之间的优化是否存在显着差异,还是一种代表最佳实践?

我最初的想法是,我希望连接打开的时间尽可能短,但考虑到页面加载速度有多快,我在打开和关闭这些连接上花费的时间比保持连接打开所消耗的资源值得吗?

4

2 回答 2

3

需要考虑的一件事:DataContext的生命周期不会影响 SQL Server 连接保持打开状态的时间。您的 Linq To Sql 生成的 SQL 语句仅在您评估查询时执行。

因此,当您调用(例如)时, . ToList(), 或调用.DataBind(), 则运行 SQL 语句。连接在那个时候打开和关闭。

于 2009-10-14T17:09:24.997 回答
1

LinQ to SQL 管理器在幕后使用连接池 IIRC。因此,除非您以某种方式明确终止连接,否则您不应该担心。

于 2009-10-14T17:10:05.180 回答