2013-04-12 2 views
2

В приложении Windows C# 2008, использующем вызов веб-службы, имеется большой объем операторов, которые выглядят следующим образом: В приложении C# 2008 я использую linq для SQL-операторов, которые выглядеть следующим образом:Пул соединений в LINQ to SQL

// код

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

Непосредственно перед каждым вызовом, который сделан на базе данных, новый объект контекста данных создается.

Может ли это вызвать проблему с пулом соединений в базе данных? Если да, можете ли вы сказать мне, как решить проблему объединения пулов?

+0

какая проблема пула соединения вы упоминаете? –

+0

Что мы обычно используем для подключения к БД. – 2013-04-12 10:15:34

ответ

0

DataContext - это легкий объект, который закрывает соединение с базой данных, как только он будет завершен в качестве задачи.

Следовательно, создание большого количества этих объектов не должно вызывать проблемы объединения пулов, если, возможно, они не создаются одновременно на разных потоках.

2

Пул соединений не является проблемой, это решение проблемы. Это пул соединений, что позволяет писать

TDataContext TData = new TDataContext(); 

без страха изнурительных ограниченное число РСУБД соединений или замедляя систему к ползанию из-за закрытия и повторного открытия соединения слишком часто. Единственная проблема, с которой вы можете столкнуться с таким кодом, это кэширование: все, что кэшируется в TData, исчезает, когда оно выходит за пределы области видимости, поэтому вы можете повторно перечитывать одну и ту же информацию несколько раз без необходимости. Тем не менее, кеш на стороне RDBMS поможет вам в большинстве случаев, поэтому даже кэширование не будет проблемой большую часть времени.

Смежные вопросы