【问题标题】:Method 'Create' in type 'IBM.EntityFrameworkCore.Query.Internal.Db2SqlTranslatingExpressionVisitorFactory' from assembly 'IBM.EntityFrameworkCore'来自程序集“IBM.EntityFrameworkCore”的“IBM.EntityFrameworkCore.Query.Internal.Db2SqlTranslatingExpressionVisitorFactory”类型中的方法“创建”
【发布时间】:2021-03-04 23:52:36
【问题描述】:

我正在尝试使用EntityFrameworkCore 3.1 NuGet 版本连接到 IBM DB2 数据库。 我的 DataAccess 项目是使用 .NET 标准 2.1 构建的,我在 .NET Core 3.1 Web API 项目中添加了它的引用。 我正在使用内置的 MS 依赖注入在我的 Web API 核心项目中注册DbContext,如下所示。

public void ConfigureServices(IServiceCollection services)
{
    ...
    services.AddDbContext<RDSContext>(options => options
        .UseDb2(Configuration["connectionStrings_IBMDb"], p => p.SetServerInfo(IBMDBServerType.IDS)));
    ...
}

当我尝试运行时,出现以下错误。无法理解根本原因。

System.TypeLoadException: '方法'创建'类型 'IBM.EntityFrameworkCore.Query.Internal.Db2SqlTranslatingExpressionVisitorFactory' 从程序集'IBM.EntityFrameworkCore,版本 = 3.1.0.400, Culture=neutral, PublicKeyToken=7c307b91aa13d208' 没有 实施。'

我的DataAccess 项目有以下参考:

<PackageReference Include="IBM.Data.DB2.Core" Version="3.1.0.200" />
<PackageReference Include="IBM.EntityFrameworkCore" Version="3.1.0.200" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.0">

任何想法,我该如何解决这个错误?

【问题讨论】:

  • 您可能想尝试将软件包更新到最新版本。 NuGet 上 IBM.EntityFrameworkCore 的最新版本是 5.0.0.20
  • @GlynnHurrell:包 IBM.EntityFrameworkCore 5.0.0.200 与 netstandard2.1 (.NETStandard,Version=v2.1) 不兼容
  • 在这种情况下,您可以尝试更新到 3.1.0.400。
  • @GlynnHurrell:不幸的是,将其更新到 .net core 3.1 是最后的选择,因为它涉及更改解决方案中的所有其他项目。
  • 抱歉,我的意思是将 IBM.EntityFrameworkCore 版本更新为 3.1.0.400。它仍然支持NetStandard2.1

标签: c# .net entity-framework entity-framework-core db2


【解决方案1】:

检查您的 Microsoft EntityFrameworkCore 包的版本。我相信最新版本是 5.x。我遇到了同样的问题,但能够通过将 Microsoft.EntityFrameworkCore.SqlSever 降级到 3.1.18 来解决它。除了 IBM EntityFrameworkCore (3.1.0.500),我还在我的项目(.net core 3.1 LTS)中使用了 EntityFrameworkCoreSqlServer 组件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-23
    • 1970-01-01
    相关资源
    最近更新 更多