You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Enterprise Library 5升级到6:EnterpriseLibraryContainer.GetInstance替代方案问询

Enterprise Library 6 替代 EnterpriseLibraryContainer.GetInstance 获取 Database 实例的方案

核心变化说明

Enterprise Library 6 移除了基于Unity的全局容器管理,每个模块改用独立的工厂类处理初始化和实例获取,数据访问模块对应的就是 DatabaseProviderFactory。


基于配置文件的实现(和原有代码逻辑最匹配)

如果你的应用依然依赖配置文件中的连接字符串和EntLib配置,按以下步骤修改:

  1. 确保配置文件(app.config/web.config)包含Data Access模块的配置节,示例如下:
<configuration>
  <configSections>
    <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" />
  </configSections>
  <!-- 指定默认数据库(可选) -->
  <dataConfiguration defaultDatabase="SomeDatabaseWeUse" />
  <connectionStrings>
    <add name="SomeDatabaseWeUse" connectionString="你的数据库连接字符串" providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>
  1. 替换原有获取实例的代码:
// 全局初始化一次即可(比如在应用启动时)
var databaseFactory = new DatabaseProviderFactory();

// 获取指定名称的数据库实例,替代原来的EnterpriseLibraryContainer.GetInstance
Database db = databaseFactory.Create("SomeDatabaseWeUse");

如果要获取配置中指定的默认数据库,可简化为:

Database db = databaseFactory.CreateDefault();

基于代码配置的实现(不依赖配置文件)

如果需要完全通过代码配置数据库连接,无需修改配置文件:

// 定义连接字符串
var connectionStringSettings = new ConnectionStringSettings(
    "SomeDatabaseWeUse",
    "你的数据库连接字符串",
    "System.Data.SqlClient");

// 构建数据库配置
var databaseConfig = new DatabaseSettings();
databaseConfig.ConnectionStrings.Add(connectionStringSettings);
databaseConfig.DefaultDatabase = "SomeDatabaseWeUse";

// 初始化工厂并获取实例
var databaseFactory = new DatabaseProviderFactory(databaseConfig);
Database db = databaseFactory.Create("SomeDatabaseWeUse");

额外提示

  • DatabaseProviderFactory 建议全局单例复用,避免重复初始化带来的性能开销
  • 原有代码中通过 ConfigurationManager.ConnectionStrings["SomeDatabaseWeUse"].Name 获取连接名的逻辑可以直接保留,传入 Create 方法即可

内容的提问来源于stack exchange,提问作者Daniel Carriveau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 11:20:36