ADO.NET: может ли один SqlConnection выполнять более одного запроса одновременно? - PullRequest
2 голосов
/ 24 июня 2010

Как дела у всех?

Очень простой вопрос сегодня.Если я даю две отдельные темы, две разные SqlCommands.Если обе SqlCommands используют один и тот же SqlConnection, могут ли они выполняться одновременно?Блокирует ли SqlConnection это поведение?Или происходит что-то ... более интересное?

(я действительно полагаю, что SqlConnections объединяются строкой соединения по этой точной причине, но мне просто нужно некоторое заверение)Гипотетический вопрос, просто любопытно, как ведет себя SqlConnection с учетом описанного дизайна.

Ответы [ 2 ]

3 голосов
/ 24 июня 2010

При наличии пула соединений ADO.NET правильный способ выполнить запрос - создать и открыть объект соединения, затем запустить объект команды (который использует объект соединения), а затем закрыть соединение.Таким образом, сценарий, который вы описываете (когда вы передаете открытое соединение двум различным объектам команд), никогда не должен происходить.При обычном использовании ваши два разных командных объекта должны открывать и закрывать свои собственные объекты соединения независимо друг от друга, что означает, что вы никогда не столкнетесь с проблемой двух командных объектов, одновременно пытающихся использовать одно и то же соединение.

0 голосов
/ 25 июня 2010

Может быть, вам стоит рассмотреть Несколько активных наборов результатов .Вы можете выполнить несколько запросов к одному объекту SqlConnection, хотя с некоторыми ограничениями.

...