Это кодирует бассейн связи SQL?

Я использую Важный. Лесоруб регистрации SQL. Я смотрел на источник библиотеки здесь и видел (в конце)

Каждый раз вы хотите зарегистрироваться к SQL:

using (var connection = DbProviderFactoryExtensions.CreateConnection(dbFactory, connectionSettings.ConnectionString))
{
    using (var command = DbProviderFactoryExtensions.CreateCommand(dbFactory, CommandText, connection))
    {
        command.Parameters.Add(DbProviderFactoryExtensions.CreateParameter(dbFactory, "@ApplicationName", ApplicationName != null ? (object)ApplicationName : DBNull.Value));
       //..snip..
        command.Parameters.Add(DbProviderFactoryExtensions.CreateParameter(dbFactory, "@Data", dataString != null ? (object)dataString : DBNull.Value));

        connection.Open();//<====
        command.ExecuteNonQuery();
    }
}

Функция помощника прямо на верхней части заявления использования

public static DbConnection CreateConnection(DbProviderFactory dbFactory, string connectionString)
{
    if (dbFactory == null) throw new ArgumentNullException("dbFactory");

    var connection = dbFactory.CreateConnection();
    connection.ConnectionString = connectionString;
    return connection;
}

Вопрос:

  1. это открывается (и закрывается), связь с SQL-сервером каждый раз, это делает это? Я предполагаю, что было бы более эффективно объединить связь с SQL-сервером, правильно?
  2. , Если я должен был заменить это Структурой Предприятия 5.0 (с использование (вар db = новый myDbContext ()) {} ), который приведет к объединению связи?
0
nl ja de

3 ответы

Это открывается (и закрывается), связь с SQL-сервером каждый раз, это делает это? Я предполагаю, что было бы более эффективно объединить связь с SQL-сервером, правильно?

Да. И нет. Это звонит Близко() посредством Располагают() , но это на самом деле объединяет связи для вас в фоновом режиме, предполагая, что вы не установили свойств в строке подключения, которые отвергают объединение. Вы ничего не делаете для этого; просто открываются уже в возможном, и закрываются как можно скорее и позволяют ADO.NET сделать свою вещь.

Если я должен был заменить это Структурой Предприятия 5.0 (с использованием (вар db = новый myDbContext ()) {}), который приведет к объединению связи?

DbContext также использует объединение, потому что это использует регулярный ADO.NET негласно. Кодекс, который это производит обычно, следует совету, который я дал выше: Открывается уже в возможном, и закрывается как можно раньше - разрешение объединению ручки ADO.NET.

3
добавлено

Как поддерживающая информация Эндрю комментарий:

Если вы не отключаете объединение связи (добавляя Pooling=False в вашу строку подключения), ADO.NET объединяет ваши связи. Это отделяет фонды связи согласно строкам подключения. Если там существует, бассейн для данной строки подключения, повторные использования это, иначе создает новую связь.

Дефолт макс. размер фонда связи равняется 100. Но можно изменить поведение объединения, установив связанные признаки строки подключения - Минимальный Размер Бассейна, Размер Бассейна Макса, и т.д.

Посмотрите связанный статья msdn поскольку, как объединение связи работает и здесь для деталей использования.

2
добавлено

Как поддерживающая информация Эндрю комментарий:

Если вы не отключаете объединение связи (добавляя Pooling=False в вашу строку подключения), ADO.NET объединяет ваши связи. Это отделяет фонды связи согласно строкам подключения. Если там существует, бассейн для данной строки подключения, повторные использования это, иначе создает новую связь.

Дефолт макс. размер фонда связи равняется 100. Но можно изменить поведение объединения, установив связанные признаки строки подключения - Минимальный Размер Бассейна, Размер Бассейна Макса, и т.д.

Посмотрите связанный статья msdn поскольку, как объединение связи работает и здесь для деталей использования.

2
добавлено
SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)