在我的项目中使用linq to SQL时,我当前在代码执行中尽可能晚地创建数据上下文,并尽快进行处理。这导致数据上下文在页面上多次打开和关闭。Linq to SQL数据源最佳实践
另一种选择是在页面加载时打开数据类并将其置于页面卸载,因此只能打开和关闭连接一次。
这两种方法之间的优化是否存在显着差异,还是代表最佳实践?
我最初的想法是,我希望尽可能少的时间打开连接,但考虑到页面加载的速度有多快,我花费更多的时间来打开和关闭这些连接,而不是保持打开状态的资源是值得的?
在我的项目中使用linq to SQL时,我当前在代码执行中尽可能晚地创建数据上下文,并尽快进行处理。这导致数据上下文在页面上多次打开和关闭。Linq to SQL数据源最佳实践
另一种选择是在页面加载时打开数据类并将其置于页面卸载,因此只能打开和关闭连接一次。
这两种方法之间的优化是否存在显着差异,还是代表最佳实践?
我最初的想法是,我希望尽可能少的时间打开连接,但考虑到页面加载的速度有多快,我花费更多的时间来打开和关闭这些连接,而不是保持打开状态的资源是值得的?
需要考虑的一件事:DataContext
的生命周期不会影响SQL Server连接保持打开状态的时间。 Linq To Sql生成的SQL语句仅在您评估查询时执行。
所以,当你打电话(例如),。 ToList()
,或致电.DataBind()
,然后运行SQL语句。当时打开和关闭连接。
在幕后LinQ to SQL管理器使用连接池IIRC。 所以除非你以某种方式明确地终止连接,这不应该成为你的担忧。
这是否意味着这两种方法实际上是相同的? 是否有任何理由不在页面加载时创建它,然后将其置于页面卸载上呢? – William 2009-10-14 18:12:29