传统上,当我们使用SQL字符串完成一些工作时,我们必须在页面关闭之前关闭sql连接,我想知道我是否使用Linq来执行数据操作我还需要手动关闭连接吗?
答案 0 :(得分:10)
这与({em>完全重复)this question非常相似。
LINQ to SQL将在需要时打开和关闭连接 - 您实际上不必处理DataContext。但是,有些时候你可以“欺骗”上下文,在你不应该打开连接时 - 我个人喜欢将它作为理所当然的事情处理掉。有关LINQ to SQL团队的Matt Warren的更多详细信息,请参阅我对其他问题的回答。
然而,我不了解实体框架。
答案 1 :(得分:2)
我详细回答了一个关于关闭您可能感兴趣的联系的问题here。
Microsoft已回答了这个问题here:
Q值。我的数据库有多长时间了 连接仍然开放?
一个。连接通常保持打开状态 直到您使用查询结果。 如果您希望花时间处理 所有的结果并没有反对 缓存结果,应用ToList<(Of <(TSource>)>)到查询。共同的 每个对象的场景 只处理了一次,流媒体 模型在DataReader中都是优越的 和LINQ to SQL。
连接使用的确切细节 取决于以下内容:
DataContext的连接状态 由连接构成 宾语。
连接字符串设置(for 例如,启用多个活动 结果集(MARS)。更多 信息,请参阅多个活动 结果集(MARS)。
可以找到更多详细信息here:
创建LINQ to SQL DataContext时,可以提供现有的ADO.NET连接。针对DataContext的所有操作(包括查询)都使用此提供的连接。如果连接已经打开,LINQ to SQL会在完成连接后保留原样。
答案 2 :(得分:0)
在代码中,您无需打开和关闭连接。但是,IMO LinqDataContext应该被视为SqlConnection或SqlCommand之类的资源,并且应该是using块的一部分,以便在不使用时进行处理。虽然我已经在MSDN上阅读过这不是必要的,但这是一个很好的做法。