程序集“IBM.EntityFrameworkCore”的类型“IBM.EntityFrameworkCore.Query.Internal.Db2SqlTranslatingExpressionVisitorFactory”中的方法“创建”

sgtfey8w  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(119)

我正在尝试使用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,版本=3.1.0.400,区域性=中性,公钥标记=7c307b91aa13d208“中得类型”IBM.EntityFrameworkCore.Query.Internal.Db2SqlTranslatingExpressionVisitorFactory“中得方法”Create“没有实现.”
我的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">

有什么想法,我该如何解决这个错误?

dnph8jn4

dnph8jn41#

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

相关问题