В .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.