Sto provando a connettermi a un'istanza db2 utilizzando EF6 e il nuovo provider di dati IBM Entity Framework trovato qui
hai aggiunto il provider alla configurazione dell'app:
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="IBM.Data.DB2" type="IBM.Data.DB2.EntityFramework.DB2ProviderServices, IBM.Data.DB2.EntityFramework, Version=10.5.5.6, Culture=neutral, PublicKeyToken=7c307b91aa13d208" />
</providers>
e la stringa di connessione è così:
<add name="DB2" connectionString="Server=blah;Database=meh;Uid=user;Pwd=pword;" providerName="IBM.Data.DB2" />
Posso creare un'istanza di un contesto, ma quando provo a eseguire una query lancia una MethodAccessException
:
Attempt by method 'IBM.Data.DB2.EntityFramework.DB2ProviderServices.GetDbProviderManifestToken(System.Data.Common.DbConnection)' to access method 'IBM.Data.DB2.DB2Trace.Entity_CheckDB2Trace()' failed.
Ho installato il Fix Pack 5 della versione 10.5 di DB2
Qualche idea su cosa potrei fare male?
Si è scoperto che avevo installato il driver 10.5.5 ma non è stato impostato come predefinito. Dopo aver eseguito la "procedura guidata di selezione dell'interfaccia client DB2 e database predefinita" (trovata solo ricercando nel menu di avvio) e impostando il nuovo come predefinito, ha funzionato correttamente
@ Ramu, ho recentemente iniziato la migrazione di una delle nostre applicazioni legacy e ho iniziato a capire come connettermi a IBM DB2 usando Entity Framework 6. Per rispondere direttamente alla tua domanda - non è possibile lavorare in VS 2015 come add-in del database IBM sono supportato solo fino al VS 2013. Abbiamo contattato IBM e non hanno idea se rilasceranno questi componenti aggiuntivi per VS 2015.
Come soluzione, ho creato il mio repository in VS 2013 e l'ho reso un pacchetto nuget. Ho importato quel pacchetto nel mio progetto VS 2015. Ora i pacchetti sono molto più puliti per farlo che fornire riferimenti dll dll.
Ecco come ho impostato l'ambiente
Vai a programmi e funzionalità e assicurati sempre che sia il componente client IBM Data che i componenti aggiuntivi del database IBM per VS debbano avere lo stesso livello di versione, rilascio e fix-pack.
Spero che questo ti aiuti.