Ответ 1
Нет, это то же самое.
Я разобрал SqlConnection.CreateCommand
и нашел это:
public SqlCommand CreateCommand()
{
return new SqlCommand(null, this);
}
что доказывает, что они на самом деле одно и то же.
В .Net существует ли какая-либо функциональная разница между созданием нового объекта SqlCommand
и присоединением к нему SqlConnection
и вызовом CreateCommand()
для существующего объекта SqlConnection
?
Нет, это то же самое.
Я разобрал SqlConnection.CreateCommand
и нашел это:
public SqlCommand CreateCommand()
{
return new SqlCommand(null, this);
}
что доказывает, что они на самом деле одно и то же.
Они делают то же самое. Обоснованием SqlConnection.CreateCommand
является реализация шаблона factory.
Функционально они точно совпадают.
Однако SqlConnection.CreateCommand()
позволяет вам быть более агностичным в отношении того, какой тип базы данных вы используете. Например, вместо того, чтобы передавать экземпляр SqlConnection
, вы можете передать его как DbConnection
, который даст DbCommand
.