Создайте новый SQLCommand's или снова используйте того же

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

Однако, если независимость базы данных не является фактором № 1 и набором навыков Вашей команды, включает сильные навыки базы данных, то помещение бизнес-логики в базе данных может оказаться лучшим решением. У Вас могут быть свои люди приложения, делающие специализированные вещи и Ваших людей базы данных, удостоверяющихся вся муха запросов.

, Конечно, существует большая разница между способностью бросить SQL-оператор вместе и наличие "сильных навыков базы данных" - если Ваша команда ближе к первому, чем последние тогда помещают логику в приложение с помощью одного из Того, чтобы быть в спящем режиме этого мира (или измените команду!).

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

Hope, которая помогает.

13
задан Nestor 5 October 2009 в 03:45
поделиться

1 ответ

SqlCommands довольно легковесны. Вы можете безопасно создавать новую каждый раз.

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

Кроме того, обычно можно каждый раз использовать новое соединение SqlConnection. Автоматическое встроенное объединение соединений - это «волшебство», которое делает это эффективным.

Я использую это:

public void ExecuteQuery(string query)
{
    this.ExecuteQuery(query, null);
}

public void ExecuteQuery(string query, Dictionary<string, object> parameters)
{
    using (SqlConnection conn = new SqlConnection(this.connectionString))
    {
        conn.Open();

        using (SqlCommand cmd = conn.CreateCommand())
        {
            cmd.CommandText = query;

            if (parameters != null)
            {
                foreach (string parameter in parameters.Keys)
                {
                    cmd.Parameters.AddWithValue(parameter, parameters[parameter]);
                }
            }

            cmd.ExecuteNonQuery();
        }
    }
}
17
ответ дан 1 December 2019 в 23:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: