【问题标题】:Connection pool in LINQ to SQLLINQ to SQL 中的连接池
【发布时间】:2013-04-12 10:12:49
【问题描述】:

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

//代码

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

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

这会导致数据库出现某种连接池问题吗?如果是这样,您能告诉我如何解决连接池问题吗?

【问题讨论】:

  • 你说的是什么连接池问题?
  • 我们一般用来连接数据库的。

标签: c# linq linq-to-sql


【解决方案1】:

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

TDataContext TData = new TDataContext();

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-02-13
      • 1970-01-01
      • 2012-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2014-04-08
      • 2014-08-25
      相关资源
      最近更新 更多