2

在使用调用 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().

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

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

4

2 回答 2

2

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

TDataContext TData = new TDataContext();

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

于 2013-04-12T10:16:22.893 回答
0

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

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

于 2013-04-12T10:16:07.017 回答