【问题标题】:Using entity Framework with .NET Core and DB2将实体框架与 .NET Core 和 DB2 结合使用
【发布时间】:2019-12-10 15:29:35
【问题描述】:

是否有人将 .NET Core 与 DB2 和 EF Core 一起使用?我们试图找到兼容的驱动程序,但似乎不存在。有没有人找到将 DB2 与 .NET Core 3.0 一起使用的方法?

谢谢!

【问题讨论】:

    标签: .net entity-framework asp.net-core db2


    【解决方案1】:

    IBM 现在已经在 nuget 上发布了一个 new version 3.1.0.300IBM.EntityFrameworkCore,可与 EF Core 3.1 配合使用。

    我需要做几件事才能让它工作:

    • 从护照下载针对 DB2 版本 11.5 的新版本许可证文件 优势
      • 我不知道为什么会存在这个限制,但我们的旧 11.1 许可证根本不起作用,而且数据库根本没有升级。
    • 许可证文件必须复制到C:\Users\{YourUserNameHere}\.nuget\packages\ibm.data.db2.core\3.1.0.300\buildTransitive\clidriver\license
      • 对于旧版本,将buildTransitive 替换为build

    我假设用户有权访问 IBM Passport Advantage,但我不知道试用许可证。

    找到下载许可证文件的位置非常令人困惑,但我想通了,并会在此处为其他需要这样做的人提及步骤:

    注意:只要 EF 本身未更新到 3.1 版本,仍然可以在 .NET Core 3.1 中使用旧库。该问题与 EF 3.1 兼容,而不是 .NET Core 3.1。只要避免将 EF nuget 包更新到较新的版本,一切都会正常工作。

    【讨论】:

      【解决方案2】:

      由于 IBM 糟糕的 .Net 支持,没有核心 3.0 或标准 2.1 支持。如果您联系他们的支持人员,预计 2020 年 3 月将提供 alpha 驱动程序。

      您可以在此link 进行一些对话。

      【讨论】:

      • 跟进此事。他们确实发布了 3.1 alpha 驱动程序,但您需要联系他们的支持人员才能访问它,并且只能通过他们的 Passport Advantage 页面下载。它几乎没有错误,但它现在确实支持基本的值转换器,即字符串修剪或 smallInt 字段到布尔值。
      • IBM 日前在 nuget.org 上发布了与 EF Core 3.1 兼容的提供程序。
      【解决方案3】:

      Database Providers EF Core 帮助页面上列出了 Db2 的包。我个人没有使用过它们,但如果它们列在那里,它们应该可以正常工作。

      【讨论】:

      • 好的,这些是 2018 年的,似乎支持到 Core 2.x。因此,可以公平地说,目前还没有用于 DB2 的 .NET Core 3.0 驱动程序——除非 IBM 正在开发任何驱动程序?
      • NuGet 以 .NET Standard 2.0 为目标,这意味着它们与实现 .NET Standard 2.0 的任何东西兼容,即 .NET Core 2.x 3.x。自 2018 年以来,它可能根本不需要任何更改。提供者的级别非常低。主要工作(以及大部分更改)发生在 EntityFrameworkCore 和 EntityFrameworkCore.Relational 中。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-15
      • 2019-03-24
      相关资源
      最近更新 更多