Configuration 在代码中配置企业库

Configuration 在代码中配置企业库,configuration,enterprise-library,Configuration,Enterprise Library,是否可以完全在代码中配置企业库中的数据应用程序块? 而不是使用凌乱的配置文件。简短回答:是 长回答:你为什么要这么做?这个凌乱的大文件的全部思想是,编写一些使用接口的通用代码,然后配置细节。要从ORacle切换到SQL Server吗?我只是更新了一个配置变量。是的,这是一个bear移植存储过程,但它可以工作。好的,经过一点谷歌搜索和一些尝试和错误,我想出了这个解决方案,效果非常好。它使用System.Data.SQLClient提供程序。 只需提供一个连接字符串: Di

是否可以完全在代码中配置企业库中的数据应用程序块? 而不是使用凌乱的配置文件。

简短回答:是


长回答:你为什么要这么做?这个凌乱的大文件的全部思想是,编写一些使用接口的通用代码,然后配置细节。要从ORacle切换到SQL Server吗?我只是更新了一个配置变量。是的,这是一个bear移植存储过程,但它可以工作。

好的,经过一点谷歌搜索和一些尝试和错误,我想出了这个解决方案,效果非常好。它使用System.Data.SQLClient提供程序。 只需提供一个连接字符串:

            Dim databaseSettings As Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings
            Dim connStringSection As System.Configuration.ConnectionStringsSection = New System.Configuration.ConnectionStringsSection()
            Dim dictDataSource As Microsoft.Practices.EnterpriseLibrary.Common.Configuration.DictionaryConfigurationSource
            Dim dbProvider As Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DbProviderMapping
            Dim dbFactory As DatabaseProviderFactory
            Dim database As Microsoft.Practices.EnterpriseLibrary.Data.Database

            databaseSettings = New Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings()
            connStringSection = New System.Configuration.ConnectionStringsSection()
            dictDataSource = New Microsoft.Practices.EnterpriseLibrary.Common.Configuration.DictionaryConfigurationSource()
            dbProvider = New Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DbProviderMapping(Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DbProviderMapping.DefaultSqlProviderName, GetType(Sql.SqlDatabase))

            connStringSection.ConnectionStrings.Add(New System.Configuration.ConnectionStringSettings("DBConnectionString", connectionString, "System.Data.SqlClient"))
            databaseSettings.ProviderMappings.Add(dbProvider)
            databaseSettings.DefaultDatabase = "DBConnectionString"

            'Add Database Settings to Dictionary
            dictDataSource.Add(Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings.SectionName, databaseSettings)
            'Add Connection String to Dictionary
            dictDataSource.Add("connectionStrings", connStringSection)

            dbFactory = New DatabaseProviderFactory(dictDataSource)
            database = dbFactory.Create("DBConnectionString")
            database.CreateConnection()

            Return database

我想创建一个返回已配置数据库对象的小函数。我可以很容易地创建另一个方法来为Oracle配置数据库对象。。。配置文件中唯一的设置是connectionstring。数据应用程序块的想法是为不同的数据库提供者提供通用代码,这很好!如何在代码中配置它?