LINQ到SQL的连接池

本文关键字:连接 SQL LINQ | 更新日期: 2023-09-27 18:08:43

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

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

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

LINQ到SQL的连接池

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

TDataContext TData = new TDataContext();

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

DataContext是一个轻量级对象,它作为一个任务一旦完成就会关闭数据库连接。

因此,除非在不同的线程上同时创建这些对象,否则创建大量这样的对象不会导致连接池问题。