我看了Multiple/single instance of Linq to SQL DataContext和http://www.west-wind.com/weblog/posts/246222.aspx
我正在开发一个Web应用程序。在我的blclass中有很多方法可以对DB进行一些查询,在每个方法中,我声明:
Dim db As New DemoDataClassesDataContext
为每个事务创建一个新的DataContext实例。我想知道这是否会成为一个问题的性能或任何其他我不知道的问题。这是正确的方法吗?
我应该使用:
Dim db As New DemoDataClassesDataContext 或使用db作为新的DemoDataClassesDataContext
据我所知,.NET中的所有对象最终都会被自动垃圾收集器自动处理。
using语句是在语句之间的代码运行后处理对象。
在这篇博文http://lee.hdgreetings.com/2008/06/linq-datacontex.html中说“在Datacontext上调用Dispose通常并不重要。”
关于如何管理Web应用程序的LINQ datacontext生命周期,我还没有清晰的图片。任何建议都非常感谢。
谢谢。
答案 0 :(得分:-1)
使用声明是处置 一旦代码之间的对象 声明已经运行。
这是不正确的。当代码退出使用范围时,using将最终调用该对象。这将依次调用底层数据库连接上的close。因此,您需要using语句来确保数据库连接已关闭。
修改强>
只要您按照此处的讨论枚举整个结果集,您实际上不必在datacontract上调用dispose:When should I dispose of a data context