Дополнительно
Есть ли разница между SqlConnection.CreateCommand и new SqlCommand?
Есть ли в .Net функциональная разница между созданием нового объекта SqlCommand
и присоединением к нему SqlConnection
и вызовом CreateCommand()
на существующем объекте SqlConnection
?
29
4
Нет, это одно и то же.
Я разобрал
SqlConnection.CreateCommand
и обнаружил следующее:что доказывает, что это действительно одно и то же.
Они выполняют одно и то же действие. Смысл
SqlConnection.CreateCommand
заключается в реализации паттерна фабрики.Функционально они абсолютно одинаковы.
Однако
SqlConnection.CreateCommand()
позволяет вам быть более независимым от того, какой тип БД вы используете. Например, вместо передачи экземпляраSqlConnection
вы можете передать его какDbConnection
, что приведет к созданиюDbCommand
.Это может пойти, не говоря, но просто для полноты, есть одно отличие. Если вы создаете команду sqlcommand, вы можете пройти в запроса в качестве параметра. Если вы позволите метод sqlconnection CreateCommand, нет положения для подачи запроса. Так как вы можете просто установить свойство sqlcommand'ы свойства commandtext свойство, грань довольно тонкая, но она существует.
или