在使用调用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().
在对数据库进行的每次调用之前,都会创建一个新的数据上下文对象。
这是否会对数据库造成某种连接池问题?如果是这样,你能告诉我如何解决连接池问题吗?
答案 0 :(得分:2)
连接池不是问题,它是解决问题的方法。它是连接池,使您可以编写
TDataContext TData = new TDataContext();
不用担心耗尽有限数量的RDBMS连接,或者由于过于频繁地关闭和重新打开连接而使系统速度变慢。您可能遇到的唯一问题就是缓存:TData
中缓存的任何内容在超出范围时都会消失,因此您可能会多次重复读取相同的信息。但是,在大多数情况下,RDBMS端的缓存可以帮助您,因此即使缓存也不会成为大多数时间的问题。
答案 1 :(得分:0)
DataContext是一个轻量级对象,它在作为任务完成后立即关闭数据库连接。
因此,创建大量这些对象不应该导致连接池问题,除非它们可能在不同的线程上同时创建。