【发布时间】: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