2009-10-14 104 views
1

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

另一种选择是在页面加载时打开数据类并将其置于页面卸载,因此只能打开和关闭连接一次。

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

我最初的想法是,我希望尽可能少的时间打开连接,但考虑到页面加载的速度有多快,我花费更多的时间来打开和关闭这些连接,而不是保持打开状态的资源是值得的?

回答

3

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

所以,当你打电话(例如),。 ToList(),或致电.DataBind(),然后运行SQL语句。当时打开和关闭连接。

+0

这是否意味着这两种方法实际上是相同的? 是否有任何理由不在页面加载时创建它,然后将其置于页面卸载上呢? – William 2009-10-14 18:12:29

1

在幕后LinQ to SQL管理器使用连接池IIRC。 所以除非你以某种方式明确地终止连接,这不应该成为你的担忧。