我对数据库和linq都很陌生,所以我的问题可能被认为是微不足道的。我目前在每个类中都使用以下代码开始所有的数据库请求:
DataClassesDataContext db = new DataClassesDataContext()
然后我开始在方法内进行任何需要的linq请求,并继续主要应用逻辑。
现在,有两个有趣的查询:
1)我相信我已经看到过人们在“using”中包装数据库使用。例如:
using (DataClassesDataContext db = new DataClassesDataContext())
{
...
}
如果这是正确的,那么我的类就不能再使用成员变量'db'了,而是需要在每个函数调用中进行db请求。此外,如果我不在调用中使用'using',会发生什么呢?
2) 启用SQL Profiler运行我的应用程序后,我看到有很多连接在打开和关闭。这是否意味着每个DataClassesDataContext调用都会创建一个单独的连接?这似乎效率低下,所以实际上正确的方法是将DataClassesDataContext对象作为每个被使用的类中的静态对象吗?