ho bisogno di sapere v'è alcuna funzione di connessione al database DB2 da .NET a NET Framework 4.0fa .Net Framework 4.0 hanno caratteristiche per la connessione a DB2
EDIT: - mi piace sapere se c'è qualche Provider DB2
ho bisogno di sapere v'è alcuna funzione di connessione al database DB2 da .NET a NET Framework 4.0fa .Net Framework 4.0 hanno caratteristiche per la connessione a DB2
EDIT: - mi piace sapere se c'è qualche Provider DB2
Cosa intendi? Volete qualcosa di specifico su .NET 4.0 o volete sapere se possiamo connetterci con DB2 usando .NET Framework o meno.
Se in seguito è il caso, sì è possibile. La classe OleDBConnection (disponibile anche in .NET 2.0 e .NET 3.5) ha una proprietà ConnectionString in cui vengono impostati i dettagli del provider. Devi semplicemente fornire la stringa di connessione del provider per il tuo provider DB2 e dovresti essere OK.
Sì, la famiglia di driver IBM.Data.DB2 (trovata collettivamente in IBM.Data.DB2.dll, credo) dovrebbe funzionare correttamente con .NET, a condizione di installare i driver sul computer di sviluppo.
Inoltre, sono riuscito a farlo funzionare correttamente con VS2010Beta e EF4Beta2, nonostante la mancanza di componenti aggiuntivi di Visual Studio per VS2010 (a partire da questa data). Se i driver sono già installati sul computer, è sufficiente è necessario aggiungere una voce per esso nel file machine.config per clr di .NET 4.0.
MODIFICA: Segue la marcatura machine.config di esempio. In origine, il file di configurazione aveva solo la singola voce DB Provider Factory del server SQL. Supponendo che IBM.Data.DB2 sia installato sul tuo computer, puoi fare ciò che ho fatto e aprire semplicemente il file machine.config 2.0 e copiare/incollare le voci per DB2. Full disclosure, onestamente non so se sono richiesti tutti e 4, ma una installazione pulita di 9.7fp1 ha inserito tutte e quattro le voci nel mio 2.0 machine.config, quindi sono andato avanti e le ho copiate tutte su 4.0 machine.config. Copia/incolla, salvare il file e riavviare Visual Studio 2010 e si dovrebbe essere in grado di fare riferimento il provider nel vostro EDMX con le informazioni contenute nella definizione del modello di memorizzazione:
<edmx:StorageModels>
<Schema xmlns="http://schemas.microsoft.com/ado/2009/02/edm/ssdl" Namespace="BlahModel.Store" Alias="Self" Provider="IBM.Data.DB2" ProviderManifestToken="IDS/UNIX64, 11.50.0000">
noti che mi interessa il collegamento a un database informix, quindi il valore ProviderManifestToken. Tuttavia, non penso sia richiesto verbatim.
Il frammento del mio 4,0 machine.config:
<system.data>
<DbProviderFactories>
<add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
<add name="IBM DB2 .NET Data Provider" invariant="IBM.Data.DB2" description="IBM DB2 Data Provider for .NET Framework 2.0" type="IBM.Data.DB2.DB2Factory, IBM.Data.DB2, Version=9.0.0.2, Culture=neutral, PublicKeyToken=7c307b91aa13d208" />
<add name="IBM Informix .NET Data Provider" invariant="IBM.Data.Informix" description="IBM Informix Data Provider for .NET Framework 2.0" type="IBM.Data.Informix.IfxFactory, IBM.Data.Informix, Version=9.0.0.2, Culture=neutral, PublicKeyToken=7c307b91aa13d208" />
<add name="IBM DB2 .NET Data Provider 9.7.1" invariant="IBM.Data.DB2.9.7.1" description="IBM DB2 Data Provider 9.7.1 for .NET Framework 2.0" type="IBM.Data.DB2.DB2Factory, IBM.Data.DB2.9.7.1, Version=9.7.1.2, Culture=neutral, PublicKeyToken=7c307b91aa13d208" />
<add name="IBM Informix .NET Data Provider 9.7.1" invariant="IBM.Data.Informix.9.7.1" description="IBM Informix Data Provider 9.7.1 for .NET Framework 2.0" type="IBM.Data.Informix.IfxFactory, IBM.Data.Informix.9.7.1, Version=9.7.1.2, Culture=neutral, PublicKeyToken=7c307b91aa13d208" />
</DbProviderFactories>
</system.data>
EDIT 2: ultimi driver DB2 di IBM - v9.7fp4 - hanno notevolmente migliorato .NET 4.0 e VS2010 Add-A sostegno. L'installazione gestirà automaticamente le voci 4.0 machine.config DbProviderFactories. Se in precedenza hai modificato manualmente le voci, come descritto sopra, ti consigliamo di commentarle/eliminarle come parte della tua disinstallazione v9.7fp3 (e precedenti).
Sto anche cercando di utilizzare Visual Studio 2010 per connettersi a DB2 tramite Entity Framework. Ho provato quello che ha fatto kdawg: Ho installato il driver pacchetto IBM Data Server Ho installato Visual Studio 2008 IBM addins
Allora ho tentato di creare un modello di dati ADO.NET Entity nel mio progetto 2008 e poi convertirlo al 2010 ma la connessione al database non funzionerebbe. Ricevo il seguente errore: ERRORE [42968] [IBM] SQL1598N Un tentativo di connessione al server di database non è riuscito a causa di un problema di licenza. SQLSTATE = 42968
Apparentemente, in base a questo forum, IBM non fornisce il driver gratuitamente. È necessario che DB2 Connect sia installato e concesso in licenza. Questo è di circa $ 12.000.
Ho deciso di provare qualcos'altro.
+1 per non libero – walterhuang
Inoltre è possibile decompilare lib con Ildasm.exe per il.il
Quindi compilate utilizzando SDK 7 ilasm.exe /RESOURCE=...\IL.res ... \ il.il/USCITA = ... \ Ibm.Data.Db2.Net4.dll/DLL
Puoi pubblicare le istruzioni su dove ottenere quei driver (collegamenti, per favore) e poi come installarli? Ho installato il kit aggiuntivo per VS2008, ma non riesco ancora a visualizzare il provider db2 nella finestra di dialogo "Modifica origine dati" di EF. – camainc
Sì, la mancanza di un componente aggiuntivo per vs2010 è ciò che impedisce di vedere il provider db2 nella finestra di dialogo EF. Praticamente ho preso un esempio di lavoro 2008, l'ho aggiornato al 2010, quindi ho fatto in modo di aggiungere la voce necessaria nel computer.config per la versione 4.0. Potrei anche copiare/incollato la voce del provider db IBM dalla macchina.config della v2.0 in machine.config della v4.0. Non riesco a ricontrollare, poiché ho installato RTM vs2010 e non ho ancora rivisto questa situazione. – kdawg
Come follow-up, da allora mi sono collegato con successo a un database Informix tramite IBM.Data.DB2 con vs2010 RTM ed EF4. Per la cronaca, sto usando i driver più recenti (v9.7 fp1) di DB2 e dovevo ancora copiare/incollare le informazioni di DBProvider in 4.0.crr machine.config – kdawg