SqlConnection.CreateCommand和新的SqlCommand之间有什么区别吗?

Bre*_*Bim 29 c# ado.net

在.Net中,创建新SqlCommand对象和附加SqlConnection到它并调用CreateCommand()现有SqlConnection对象之间是否存在任何功能差异?

And*_*are 39

不,他们是一回事.

我拆开了SqlConnection.CreateCommand,发现了这个:

public SqlCommand CreateCommand()
{
        return new SqlCommand(null, this);
}
Run Code Online (Sandbox Code Playgroud)

这证明他们真的是一回事.


Meh*_*ari 12

他们做同样的事情.背后的理由SqlConnection.CreateCommand是实施工厂模式.


Joh*_*esH 8

在功能上它们完全相同.

但是,SqlConnection.CreateCommand()让您对使用的DB类型更加不了解.例如,不是传递一个SqlConnection实例,你可以传递它作为一个DbConnection会产生一个DbCommand.