LINQ to SQL中的连接池

时间:2013-04-12 10:12:49

标签: c# linq linq-to-sql

在使用调用Web服务的C#2008 Windows应用程序中,有大量语句如下所示: 在C#2008应用程序中,我使用linq到sql语句,如下所示:

//代码

  TDataContext TData = new TDataContext();
  var TNumber = (from dw in cms_TData.people
  where dw.Organization_Name.ToUpper().Trim() == strOrgnizationName.Trim().

在对数据库进行的每次调用之前,都会创建一个新的数据上下文对象。

这是否会对数据库造成某种连接池问题?如果是这样,你能告诉我如何解决连接池问题吗?

2 个答案:

答案 0 :(得分:2)

连接池不是问题,它是解决问题的方法。它是连接池,使您可以编写

TDataContext TData = new TDataContext();

不用担心耗尽有限数量的RDBMS连接,或者由于过于频繁地关闭和重新打开连接而使系统速度变慢。您可能遇到的唯一问题就是缓存:TData中缓存的任何内容在超出范围时都会消失,因此您可能会多次重复读取相同的信息。但是,在大多数情况下,RDBMS端的缓存可以帮助您,因此即使缓存也不会成为大多数时间的问题。

答案 1 :(得分:0)

DataContext是一个轻量级对象,它在作为任务完成后立即关闭数据库连接。

因此,创建大量这些对象不应该导致连接池问题,除非它们可能在不同的线程上同时创建。