如果我使用的是SqlConnection,显然最好的做法是尽快处理它,让连接池处理细节。当我使用System.Data.Linq.DataContext时,我应该遵循相同的模式吗?
我应该创建一次上下文并将其传递给我的方法,还是应该从配置文件中获取连接字符串并多次创建上下文并节省传递参数?
修改:有关身份地图的有用链接:Architecting LINQ To SQL Applications, part 7
答案 0 :(得分:2)
只有在执行操作所需的时间内,您才应该保留数据上下文。
这样做的原因是它使用了一种称为身份地图的东西,这样每次选择说客户1时,你都会得到相同的对象。这意味着它持有大量的引用,随着时间的推移将消耗越来越多的内存,这些结果将变得越来越陈旧。
对于Web应用程序,通常会为每个请求创建一个,并且DataContext类已针对快速创建进行了优化。