我想知道在.net Framework4.0中是否有从.Net连接到DB2数据库的功能
编辑:-我想知道是否有DB2提供商
发布于 2010-01-06 05:35:15
是的,只要您在开发机器上安装了驱动程序,IBM.Data.DB2驱动程序系列(我相信它们都可以在IBM.Data.DB2.dll中找到)应该可以在.NET上很好地工作。
此外,尽管还没有用于VS2010的Visual Studio外接程序(截至目前),我还是能够让它成功地与VS2010Beta和EF4Beta2一起工作。如果你的机器上已经安装了这些驱动程序,你只需要在.NET 4.0的clr的machine.config文件中为它添加一个条目。
编辑:下面是示例machine.config标记。最初,配置文件只有一个SQL server DB Provider Factory条目。假设你已经在你的机器上安装了IBM.Data.DB2,你可以像我一样简单地打开2.0的machine.config文件并复制/粘贴DB2的条目。坦率地说,我不知道是否所有的4个都是必需的,但是9.7fp1的干净安装在我的2.0 machine.config中插入了所有4个条目,所以我继续将它们复制到4.0 machine.config中。复制/粘贴,保存文件,然后重新启动visual studio 2010,您应该能够使用存储模型定义中的信息引用EDMX中的提供程序:
<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">请注意,我对连接到informix数据库感兴趣,因此使用ProviderManifestToken值。然而,我不认为这是逐字逐句的要求。
我的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>编辑2:IBM的最新DB2驱动程序-- v9.7fp4 --极大地改进了对.NET 4.0和VS2010插件的支持。它的安装将自动处理4.0 machine.config DbProviderFactories条目。如上所述,如果您以前手动编辑过条目,那么您需要在v9.7fp3 (以及更早版本)卸载过程中注释掉/删除它们。
发布于 2009-06-11 05:37:24
你是什么意思?你想要一些特定于.NET 4.0的东西,或者你想知道我们是否可以使用.NET框架与DB2连接。
如果以后是这样的话,是的,你可以。OleDBConnection类(在.NET 2.0和.NET 3.5中也可用)有一个属性ConnectionString,您可以在其中设置提供者的详细信息。您只需为您的DB2提供程序提供提供程序的连接字符串,就可以了。
发布于 2011-04-28 05:07:43
我也在尝试使用Visual Studio2010通过实体框架与DB2连接。我尝试了kdawg所做的:我安装了IBM数据服务器驱动程序包,我安装了IBM Visual Studio2008插件
然后,我尝试在我的2008项目中创建一个ADO.NET实体数据模型,然后将其转换为2010,但与数据库的连接不起作用。我收到以下错误: ERROR 42968 SQL1598N由于许可问题,连接到数据库服务器的尝试失败。SQLSTATE=42968
显然,根据这个forum,IBM并不是免费提供驱动程序的。您必须安装DB2连接并获得许可。这大约是12,000美元。
我决定尝试一下其他的东西。
https://stackoverflow.com/questions/979473
复制相似问题