Подтвердить что ты не робот

Есть ли разница между SqlConnection.CreateCommand и новым SqlCommand?

В .Net существует ли какая-либо функциональная разница между созданием нового объекта SqlCommand и присоединением к нему SqlConnection и вызовом CreateCommand() для существующего объекта SqlConnection?

4b9b3361

Ответ 1

Нет, это то же самое.

Я разобрал SqlConnection.CreateCommand и нашел это:

public SqlCommand CreateCommand()
{
        return new SqlCommand(null, this);
}

что доказывает, что они на самом деле одно и то же.

Ответ 2

Они делают то же самое. Обоснованием SqlConnection.CreateCommand является реализация шаблона factory.

Ответ 3

Функционально они точно совпадают.

Однако SqlConnection.CreateCommand() позволяет вам быть более агностичным в отношении того, какой тип базы данных вы используете. Например, вместо того, чтобы передавать экземпляр SqlConnection, вы можете передать его как DbConnection, который даст DbCommand.