Когда следует использовать MultipleActiveResultSets = True при работе с ASP. NET Core 3.0 и SQL Server 2019+? - PullRequest
3 голосов
/ 06 января 2020

Большинство приложений, которые я запрограммировал, не используют MultipleActiveResultSets=True, но я видел, что опция была включена в нескольких из них и в нескольких учебниках.

Этот ТА вопрос сделок с той же топи c, но она очень старая, и я считаю, что за это время многое изменилось.

OP указывает на выполнение некоторых не-запросов при выполнении ExecuteReader. В этом случае я считаю, что это плохой дизайн, поскольку он может быть заменен некоторой операцией в пакетном стиле, возможно, хранимой процедурой, чтобы минимизировать количество обращений.

При использовании Entity Framework с ASP . NET Ядро и получение исключения, связанного с контекстом данных, выполняющим уже что-то в области, я рассматриваю это как ошибку и не думаю о включении MARS.

Чтение этой статьи MS Docs Я вижу, что следует обратить внимание на различные аспекты, такие как параметры (ANSI_NULLS, DATE_FORMAT, LANGUAGE, TEXTSIZE), контекст безопасности, текущая база данных, переменные состояния (@@ERROR, @@ROWCOUNT, @@FETCH_STATUS, @@IDENTITY) при работе с включенным MARS.

Кроме того, 10+ лет означают, что серверы с гораздо большими возможностями могут поддерживать гораздо больше соединений, если это действительно необходимо (кэширование должно помочь уменьшить эту потребность).

Поэтому мне интересно, стоит ли мне когда-нибудь рассматривать включение MARS при работе с современными ASP. NET Основными приложениями (3.0 +).

Вопрос: Когда следует использовать MultipleActiveResultSets = True при работе с ASP. NET Core 3.0 и SQL Server 2019 +?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...