在我的项目中使用linq to SQL时,我目前正在代码执行中尽可能晚地创建数据上下文并尽快处理它。这导致数据上下文在页面上多次打开和关闭。
另一种选择是在页面加载时打开数据类并在页面卸载时将其处理掉,这样连接只能打开和关闭一次。
两种方法之间的优化是否存在显着差异,还是代表最佳实践?
我最初的想法是,我希望尽可能少地打开连接,但考虑到页面加载的速度是多少,我在打开和关闭这些连接上花费的时间比保持打开的资源要花费多少?< / p>
答案 0 :(得分:3)
要考虑的一件事:DataContext
的生命周期不会影响SQL Server连接保持打开的时间。只有在评估查询时才会执行Linq To Sql生成的SQL语句。
因此,当您调用(例如),。ToList()
或调用.DataBind()
时,将运行SQL语句。此时连接打开和关闭。
答案 1 :(得分:1)
在幕后,LinQ to SQL管理器使用连接池IIRC。 因此,除非你以某种方式明确地杀死连接,否则不应该关注你。