我在我的 asp.net 应用程序中使用以下代码。根据此代码,对于应用程序的所有用户,将只有一个 DBProviderFactory 实例。这会在多用户环境中产生问题吗?因此所有用户都将使用相同的 DbProviderFactory 对象来创建连接。我不确定这是否会在多用户环境中产生某种类型的隐藏问题。
我之所以为 DbProviderFactory 使用静态实例,是因为每次需要实例化连接时都不会调用 GetFactory 方法。我认为,这将使获得连接对象的速度更快。我的推理有什么缺陷吗?
public class DatabaseAccess
{
private static readonly DbProviderFactory _dbProviderFactory =
DbProviderFactories.GetFactory(System.Configuration.ConfigurationManager.ConnectionStrings["DB"].ProviderName);
public static DbConnection GetDbConnection()
{
DbConnection con = _dbProviderFactory.CreateConnection();
con.ConnectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["DB"].ConnectionString;
return con;
}
}