Gus*_*bio 8 .net c# database configuration enterprise-library
有没有办法在运行时更改Enterprise Library中的DataBase对象的连接字符串?我找到了这个链接,但它有点过时(2005)
我也发现了这个,但它似乎一般适用于.Net,我想知道是否有一些东西可以专门为EntLib完成.
我只是将连接字符串名称传递给DatabaseFactory对象中的CreateDatabase()方法,直到昨天我的项目经理要求我支持多个数据库实例.碰巧我们必须为每个状态设置一个数据库(一个用于CA,一个用于FL等),因此我的软件需要循环遍历所有数据库并对数据执行某些操作,但它将使用相同的配置文件.
提前致谢.
小智 14
看看这个:用一个连接字符串打开Microsoft.practices.EnterpriseLibrary数据库
只需使用以下代码,您就可以在运行时编程创建数据库
database mydb = new EnterpriseLibrary.Data.Sql.SqlDatabase("connection string here");
Run Code Online (Sandbox Code Playgroud)
它解决了我的问题.我有一个使用很多数据库的web应用程序,根据url中的不同子域连接到不同的数据库.如:
我使用url-rewrite来解析子域名,并使用子域名来选择存储在主数据库中的数据库连接字符串.
谢谢
如果您查看“ Enterprise Library Docs - 添加应用程序代码”,它会这样说:
“如果您知道要创建的数据库的连接字符串,则可以绕过应用程序的配置信息并使用构造函数直接创建 Database 对象。因为 Database 类是抽象基类,所以您必须构造其派生类之一类型。派生的数据库类型决定了 ADO.NET 数据提供程序。例如,SqlDatabase 类使用 SqlClientFactory 提供程序,SqlCeDatabase 类使用 SqlCeProviderFactory 提供程序,OracleDatabase 类使用 OracleClientFactory 提供程序。您有责任构造适当的数据提供程序。连接字符串的数据库类的类型。”
然后它继续给出一些例子。这表明您不应该使用 DatabaseFactory,而应该为每个不同的连接创建一个新的数据库类。