从 DB2 数据库生成 EDMX

Generating an EDMX from a DB2 Database

我正在尝试使用 VS2013 创建一个 EDMX 文件,这样我就可以 read/write 来自 DB2 数据库。我经历了与从 SQL 表创建 EDMX 相同的过程(右键单击项目 -> 添加新项 -> ADO.NET 实体数据模型 -> 来自数据库的 EF 设计器 -> 不使用 SQL这次是这样:new connection -> Change data source) 但是在Data Source选项中,DB2是不可用的。我有 2 SQL 个选项,仅此而已。

Data Source

因此,在对这里和其他一些地方进行一些调查之后,看起来 EF 在 EF6 的插件出现之前实际上并没有设置为执行此操作。因此,我使用 Nuget 安装了 EntityFramework.IBM.DB2 版本 6.0.3,希望它能为我的数据源区域添加一些内容,允许我选择 DB2 数据库,但仍然没有。

我会尽量在这里提供尽可能多的关于我的系统的信息,所以如果我漫无目的地……我倾向于这样做……提前抱歉。

我在 Windows 7 使用 VS2013 Pro 版。我有一个 ODBC 连接设置,多年来一直运行良好。我可以进入 ODBC 管理器并测试我与测试和生产 DB2 的连接,它连接得很好。

ODBC 数据源管理器的版本是 6.1.7601.17632,我使用的是 IBM DB2 ODBC 驱动程序...看起来是 10.5.500 版(虽然我不是 100% 确定我是否正在查看获取该版本号的正确位置)

我还可以进入 Access 并使用 ODBC 连接连接到 DB2 数据库,然后取回表及其数据。

我还可以使用连接字符串设置(我假设使用相同的 ODBC 连接)将 SQL 语句直接写入我的代码,并从 SQL 读取数据并调用连接到这些的存储过程DB2 表到 write/update/delete.

最后,似乎以前的同事能够完成这项工作。我加载了他的代码,当我打开 EDMX 时,我得到了所有表格的漂亮图形显示。但是当我尝试单击从数据库更新时,出现错误:

Error Message

遗憾的是,他已经不在公司了,他的电脑也不在我可以看的状态。

所以感觉这是可以完成的事情,而且我的计算机几乎可以设置为执行此操作...除了我缺少的东西,它允许我将 DB2 类型的数据源添加到上面的第一张图片,所以我可以 select 它,输入凭据并继续。

任何帮助将不胜感激...

为了使用 Entity Framework 和 Visual Studio...您需要安装 IBM 的驱动程序以及 Visual Studio 加载项(以使 DB2 显示在下拉列表中数据提供者并正确创建 EDMX)。以下是我们用来与 DB2 z/os 通信的设置。我不确定这些相同的驱动程序是否适用于 DB2 Linux/Unix/Windows。

http://www-01.ibm.com/support/docview.wss?uid=swg24041453

上面的 link 适用于客户端版本 10.5 修复包 7。我已经使用它在 Windows 7/ 中设置了 Visual Studio 2013 和 Visual Studio 2015 8.1(尚未在 Windows 10 开发机器上测试)。

这是您需要下载和安装的内容

  1. 数据服务器驱动程序包(Windows)
  2. Visual Studio
  3. 的数据库加载项

您还需要一个许可证文件(您的 DBA 应该能够为您提供此文件,或者至少使用他们的 IBM 登录名下载一个)

先安装数据服务器驱动程序,然后再安装插件。将您的许可证文件复制到 C:\Program Files\IBM\IBM DATA SERVER DRIVER\license

如果您想使用 EF6,您仍然需要 EntityFramework.IBM.DB2 nuget 包,因为 Visual Studio 加载项本身仅与 EF5 兼容

感谢您的回复。

数据库加载项正是我要找的。

我可以跳过你问题的第 1 部分,因为我已经完成了那部分,除了...为了完成第 2 部分,我必须将我的驱动程序更新到我用来安装加载项。

我下载了 10.5 版并更新了我的驱动程序,然后我能够安装插件并能够继续创建我的 EDMX。

非常感谢您的帮助。