【发布时间】:2016-07-01 01:26:39
【问题描述】:
我正在尝试使用 EF6 连接到一个 db2 实例,并且找到了新的 IBM Entity Framework 数据提供程序here
已将提供程序添加到应用配置中:
<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>
连接字符串如下所示:
<add name="DB2" connectionString="Server=blah;Database=meh;Uid=user;Pwd=pword;" providerName="IBM.Data.DB2" />
我可以实例化一个上下文,但是当我尝试运行一个查询时,它会抛出一个 MethodAccessException:
Attempt by method 'IBM.Data.DB2.EntityFramework.DB2ProviderServices.GetDbProviderManifestToken(System.Data.Common.DbConnection)' to access method 'IBM.Data.DB2.DB2Trace.Entity_CheckDB2Trace()' failed.
我已经安装了 DB2 Version 10.5 Fix Pack 5
关于我可能做错了什么有什么想法吗?
【问题讨论】:
-
检查 IBM.Data.DB2 和 IBM.Data.DB2.EntityFramework dll 方法
IBM.Data.DB2.DB2Trace.Entity_CheckDB2Trace()被标记为内部并且正在从另一个命名空间调用 -
你能先执行代码吗?我在尝试执行代码优先 EF6 模型时遇到了错误。
-
还没试过代码。一旦我正确安装了这个驱动程序,我就发现了一堆问题,因为我们正在为匹配的驱动程序运行旧版本的 DB2,而且看起来它们不兼容。我们决定暂时坚持使用 EF5。
标签: entity-framework db2 entity-framework-6