Есть ли альтернатива, которая не закрывает соединение с ExecuteStoreCommand - PullRequest
0 голосов
/ 26 апреля 2011

Мы говорим об одном ObjectContext для концепции запроса. (Веб приложение) Мы не закрываем соединение между Application_BeginRequest и Application_EndRequest. У нас есть один ObjectContext во время запроса. Мы открываем его и не закрываем во время запроса.

В Entity Framework есть ExecuteStoreCommand, но это немного опасно для производительности. Потому что, когда мы используем его (я думаю), это закрывает связь. И когда мы используем ObjectContext после того, как соединение снова открывается (это проблема производительности?)

Так есть ли альтернатива ExecuteStoreCommand или я сумасшедший? :)

1 Ответ

0 голосов
/ 26 апреля 2011

Соединение «Закрытие» и «Открытие» не оказывает реального влияния на производительность, если вы правильно используете пул соединений .Пул соединений содержит несколько открытых соединений, которые повторно используются несколькими последующими действиями.Открыть в большинстве случаев означает только «получить соединение из пула», а закрыть - «вернуть соединение в пул».Пул соединений будет обрабатывать открытие нового соединения, если оно не доступно в пуле, а также ограничивать количество одновременно используемых соединений.Пул соединений определяется для каждой строки соединения + идентификатор пользователя.

ExceuteStoreCommand закрывает соединение, только если соединение не было открыто, когда команда начала выполнение.Это означает, что если вы используете свое собственное соединение, переданное в контекст, оно не закроет его.

...