我正在使用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()) { }
)替換它會導致連接池嗎?