我正在使用Essential.Logging的SQL记录器。我看着source of the library here,看到(末)此代码池是否连接SQL连接?
每次要登录到SQL:
using (var connection = DbProviderFactoryExtensions.CreateConnection(dbFactory, connectionSettings.ConnectionString))
{
using (var command = DbProviderFactoryExtensions.CreateCommand(dbFactory, CommandText, connection))
{
command.Parameters.Add(DbProviderFactoryExtensions.CreateParameter(dbFactory, "@ApplicationName", ApplicationName != null ? (object)ApplicationName : DBNull.Value));
// ..snip..
command.Parameters.Add(DbProviderFactoryExtensions.CreateParameter(dbFactory, "@Data", dataString != null ? (object)dataString : DBNull.Value));
connection.Open(); // <====
command.ExecuteNonQuery();
}
}
助手功能有权在using语句的顶部是
public static DbConnection CreateConnection(DbProviderFactory dbFactory, string connectionString)
{
if (dbFactory == null) throw new ArgumentNullException("dbFactory");
var connection = dbFactory.CreateConnection();
connection.ConnectionString = connectionString;
return connection;
}
问题:
- 是否打开(和关闭)与SQL服务器的连接? T'我认为将连接池连接到SQL服务器会更高效,对吧?
- 如果我用Entity Framework 5.0(用
using (var db = new myDbContext()) { }
)替换它会导致连接池吗?