2009-06-11 2 views

Antwort

3

Was meinst du? Sie möchten etwas, das spezifisch für .NET 4.0 ist, oder Sie möchten wissen, ob wir mit .NET Framework eine Verbindung herstellen können oder nicht.

Wenn später der Fall ist, können Sie ja. Die OleDBConnection-Klasse (die auch in .NET 2.0 und .NET 3.5 verfügbar ist) verfügt über eine ConnectionString-Eigenschaft, in der Sie die Providerdetails festlegen. Sie müssen lediglich die Verbindungszeichenfolge des Providers für Ihren DB2-Provider angeben, und Sie sollten OK sein.

17

Ja, die Familie der IBM.Data.DB2 Treiber (kollektiv gefunden in IBM.Data.DB2.dll, glaube ich) sollte gut mit .NET funktionieren, vorausgesetzt, Sie installieren die Treiber auf Ihrem Entwicklungscomputer.

Zusätzlich konnte ich es erfolgreich mit VS2010Beta und EF4Beta2 arbeiten, trotz des Fehlens von Visual Studio Add-Ins für VS2010 (ab diesem Datum.) Wenn die Treiber bereits auf Ihrem Computer installiert sind, nur Sie müssen einen Eintrag dafür in der Datei machine.config für .NET 4.0 clr hinzufügen.

EDIT: Beispiel machine.config Markup folgt. Ursprünglich hatte die Konfigurationsdatei nur den einzelnen SQL Server DB Provider Factory-Eintrag. Angenommen, Sie haben IBM.Data.DB2 auf Ihrem Computer installiert, können Sie das tun, was ich getan habe, und einfach die Datei machine.config 2.0 öffnen und die Einträge für DB2 kopieren/einfügen. Volle Offenlegung, ich weiß ehrlich nicht, ob alle 4 erforderlich sind, aber eine saubere Installation von 9.7fp1 alle vier Einträge in meine 2.0 machine.config eingefügt, so ging ich voran und kopierte sie alle auf 4.0 machine.config. Kopieren/Einfügen, speichern Sie die Datei und starten Sie Visual Studio 2010 und Sie sollten die Anbieter in Ihrer EDMX mit den Informationen in der Speichermodell Definition zu referenzieren fähig sein:

<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"> 

Bitte beachte, dass ich interessiere mich für den Anschluss an eine informix-Datenbank, daher der ProviderManifestToken-Wert. Ich denke jedoch, dass das nicht wörtlich erforderlich ist.

Der Ausschnitt aus meinem 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: neuesten DB2-Treiber von IBM - v9.7fp4 - haben .NET 4.0 und VS2010 Add-In-Unterstützung erheblich verbessert. Seine Installation wird automatisch die 4.0 machine.config DbProviderFactories Einträge behandeln. Wenn Sie die Einträge zuvor wie oben beschrieben manuell bearbeitet haben, sollten Sie sie als Teil Ihrer v9.7fp3 (und früheren) Deinstallationen auskommentieren/löschen.

+0

Können Sie Anweisungen, wo Sie diese Treiber (Links, bitte) und dann, wie Sie sie installieren? Ich habe das Add-In-Toolkit für VS2008 installiert, aber ich kann den DB2-Provider immer noch nicht im EF-Dialogfeld "Datenquelle ändern" sehen. – camainc

+0

Ja, das Fehlen eines Add-Ins für vs2010 hindert Sie daran, den db2-Provider im EF-Dialog zu sehen. Ich habe im Grunde ein funktionierendes Beispiel 2008 genommen, es auf 2010 aktualisiert und dann sichergestellt, dass ich den benötigten Eintrag in die machine.config für v4.0 eingefügt habe. Möglicherweise habe ich sogar den IBM db provider-Eintrag aus der machine.config von v2.0 in die Maschine.config von v4.0 kopiert/eingefügt. Ich kann das nicht überprüfen, da ich vs.2010 RTM installiert habe und diese Situation noch nicht wieder aufgegriffen habe. – kdawg

+0

Als Follow-up habe ich seitdem eine Verbindung zu einer Informix-Datenbank über IBM.Data.DB2 mit vs2010 RTM und EF4 hergestellt. Für den Datensatz verwende ich die neuesten Treiber (v9.7 fp1) von DB2 und musste immer noch die DBProvider-Informationen in 4.0 clr's machine.config kopieren. – kdawg

3

Ich versuche auch, Visual Studio 2010 für die Verbindung mit DB2 über Entity Framework zu verwenden. Ich habe versucht, was kdawg tat: installierte ich den IBM Data Server Driver Package ich das IBM Visual Studio 2008 Add-In installiert

ich dann versucht, ein ADO.NET Entity Data Model in meinem 2008-Projekt zu erstellen und es dann bis 2010 konvertieren aber die Verbindung zur Datenbank würde nicht funktionieren. Ich erhalte den folgenden Fehler: FEHLER [42968] [IBM] SQL1598N Ein Versuch, eine Verbindung mit dem Datenbankserver herzustellen, ist aufgrund eines Lizenzierungsproblems fehlgeschlagen. SQLSTATE = 42968

Anscheinend, nach dieser forum, IBM bietet den Treiber nicht kostenlos. Sie müssen DB2 Connect installiert und lizenziert haben. Das sind ungefähr 12.000 $.

Ich entschied mich, etwas anderes zu versuchen.

+0

+1 für nicht kostenlos – walterhuang

1

Sie können auch mit ildasm.exe decompile lib il.il

kompilieren Dann SDK 7 ilasm.exe /RESOURCE=...\IL.res ... \ il.il/OUTPUT = ... \ Ibm.Data.Db2.Net4.dll/DLL

Verwandte Themen