You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用EntityFrameworkCore.Jet连接MS Access数据库时遇TypeLoadException错误

解决EntityFrameworkCore.Jet的TypeLoadException(get_Info方法未实现)问题

这个错误我之前帮同事排查过好几次,核心原因都是EntityFrameworkCore.Jet包和Microsoft.EntityFrameworkCore包的版本不匹配导致的。你遇到的JetOptionsExtension.get_Info未实现的错误,本质就是两个库的版本对不上,底层接口无法兼容。

下面是具体的解决步骤:

1. 明确版本匹配规则

EntityFrameworkCore.Jet严格绑定EF Core的主版本号,必须保证两者版本完全对齐:

  • EF Core 2.2.x → EntityFrameworkCore.Jet 2.2.x
  • EF Core 3.1.x → EntityFrameworkCore.Jet 3.1.x
  • EF Core 5.x+ → EntityFrameworkCore.Jet 5.x+(注意:.NET Framework 4.7.2最高支持到EF Core 3.1,因为EF Core 5+仅适配.NET Core/.NET 5+)

你之前尝试了不同的.NET版本,但没同步调整Jet包的版本,所以错误会持续出现。

2. 重新安装匹配的NuGet包

先卸载现有不匹配的包,再重新安装对应版本:

针对.NET Framework 4.7.2(推荐用EF Core 3.1)

打开NuGet包管理器控制台,执行:

# 卸载旧包
Uninstall-Package EntityFrameworkCore.Jet -Force
Uninstall-Package Microsoft.EntityFrameworkCore -Force

# 安装匹配的3.1版本
Install-Package Microsoft.EntityFrameworkCore -Version 3.1.30
Install-Package EntityFrameworkCore.Jet -Version 3.1.1

如果你坚持使用EF Core 2.2

Uninstall-Package EntityFrameworkCore.Jet -Force
Uninstall-Package Microsoft.EntityFrameworkCore -Force

Install-Package Microsoft.EntityFrameworkCore -Version 2.2.6
Install-Package EntityFrameworkCore.Jet -Version 2.2.0

3. 检查ACE驱动与项目平台的匹配性

虽然这个错误不是连接问题,但后续运行可能会遇到驱动相关问题:

  • 若安装的是32位ACE驱动,需要在项目属性→生成→勾选“首选32位”(针对Any CPU平台)
  • 若安装的是64位ACE驱动,确保项目平台设置为x64,不要勾选“首选32位”

验证你的代码

你的DataContext和Program代码本身是没问题的,版本匹配后应该能正常读取Companies表的数据。

内容的提问来源于stack exchange,提问作者Aleksandar Randjelovic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 14:57:37