2015-01-04 17 views
8

Cerca google e utilizzando l'accesso ai dati della libreria Enterprise per connettere il database.Microsoft.Practices.EnterpriseLibrary.Data.DLL ma non è stato gestito nel codice utente

Installato solo pacchetto di accesso ai dati utilizzando https://www.nuget.org/packages/EnterpriseLibrary.Data/.

Dopo aggiunto al progetto, ho impostato la configurazione come segue,

 <configSections> 
     <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" /> 
    </configSections> 
    <dataConfiguration defaultDatabase="dProvider" /> 
    <connectionStrings> 
     <add name="dProvider" connectionString="server=local;Initial Catalog=n;uid=sa;pwd=pwd" 
      providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

Chiamato attraverso l'applicazione come il seguente,

Database db; 
      string sqlCommand; 
      DbCommand dbCommand; 

      db = DatabaseFactory.CreateDatabase("dProvider"); or DatabaseFactory.CreateDatabase(); 

Dopo eseguire l'applicazione, ho ottenuto il seguente eccezione,

{"Database provider factory not set for the static DatabaseFactory. Set a provider factory invoking the DatabaseFactory.SetProviderFactory method or by specifying custom mappings by calling the DatabaseFactory.SetDatabases method."} 

Che errore ho fatto? Come risolvere questo problema?

risposta

12

Finalmente trovato la risposta. È stato verificato a causa della sezione di configurazione.

Ho usato la versione 6, ma qui ho menzionato come la versione 5 nella sezione di configurazione. Quindi l'errore si è verificato.

Ho sostituito la sezione di configurazione come segue, ha funzionato perfettamente in modo corretto. :-). Grazie mille per gli aiutanti.

<configSections> 
     <section name="dataConfiguration" 
     type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, 
      Microsoft.Practices.EnterpriseLibrary.Data"/> 
    </configSections> 

e classe DataBaseProviderFactory utilizzata per creare un'istanza.

DatabaseProviderFactory factory = new DatabaseProviderFactory(); 

      db = factory.Create("dProvider");