0

I am trying to register multiple database in an Enterprise Library 5 container. I am able to register one but unable to register a second. Can anybody tell me what I am doing wrong in the code snippet below? If I uncomment the commented out section then an error is returned saying 'An item with the same key has already been added.'

I have checked various threads but have been unable to find an answer. https://entlib.codeplex.com/discussions/401337 http://entlib.codeplex.com/discussions/539775

What is the correct\preferred method for adding multiple registries to the container? Any answers in VB or C# would be appreciated.

    Private Sub RegisterDatabase()
    Dim _connectionString as string = "ConnectionString"
    Dim _connectionString2 as string = "ConnectionString2"

    Dim builder = New ConfigurationSourceBuilder

    builder.ConfigureData().ForDatabaseNamed(_databaseName). _
        ThatIs.AnOracleDatabase().WithConnectionString(_connectionString)
    '####################################################################
    'Code works fine with this section commented out. 
    'If it's added back in, then it errors with 'An item with the same key has already been added.'
    'builder.ConfigureData().ForDatabaseNamed("APPLICATION"). _
    '    ThatIs.AnOracleDatabase().WithConnectionString(_connectionString2).AsDefault()
    '####################################################################
    Dim configSource = New DictionaryConfigurationSource
    builder.UpdateConfigurationWithReplace(configSource)

    Dim container As IUnityContainer
    container = New UnityContainer()
    container.AddNewExtension(Of EnterpriseLibraryCoreExtension)()

    Dim configurator As New UnityContainerConfigurator(container)
    EnterpriseLibraryContainer.ConfigureContainer(configurator, configSource)
    EnterpriseLibraryContainer.Current = New UnityServiceLocator(container)

End Sub
DB101
  • 633
  • 4
  • 8

1 Answers1

0

OK, I got the answer form Sujoy Roy Chowdhury's response on Changing connection string at runtime in Enterprise Library where he demonstrates the following syntax:

builder.ConfigureData() _
            .ForDatabaseNamed(_databaseName) _
                .ThatIs.AnOracleDatabase() _
                    .WithConnectionString(_connectionString) _
            .ForDatabaseNamed("APPLICATION") _
                .ThatIs.AnOracleDatabase() _
                    .WithConnectionString(_connectionString2).AsDefault()
Community
  • 1
  • 1
DB101
  • 633
  • 4
  • 8