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