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

使用EntityFrameworkCore.Jet反向工程失败:抛出COMException(0x800A0CB3)

解决方案

针对使用EntityFrameworkCore.Jet对Northwind.accdb执行反向工程时抛出的COM异常(0x800A0CB3),以下是可行的排查和解决步骤:

1. 匹配平台架构

ACE OLEDB驱动分32位和64位版本,必须确保项目目标平台与已安装驱动版本一致:

  • 若安装64位Access Database Engine 2016:
    • Visual Studio中右键项目→属性→生成→目标平台选x64;
    • VSCode终端执行命令前切换到x64环境:
      & "${env:ProgramFiles}\dotnet\dotnet.exe" ef dbcontext scaffold "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=<PATH>\northwind.accdb" EntityFrameworkCore.Jet -o Models
      
  • 若安装32位驱动,目标平台选x86,对应使用${env:ProgramFiles(x86)}\dotnet\dotnet.exe执行命令。

2. 解除数据库锁定

关闭所有打开Northwind.accdb的Access程序、VS服务器资源管理器连接等工具,避免文件被独占锁定导致元数据读取失败。

3. 验证包版本兼容性

确认EntityFrameworkCore.Jet版本与.NET7匹配:

  • 在NuGet包管理器中检查版本是否为7.x.x系列,若版本过低,升级到对应兼容版本。

4. 调整连接字符串参数

在连接字符串中添加Mode=ReadWrite参数,确保反向工程时拥有足够的元数据访问权限:

# VSCode终端命令
dotnet ef dbcontext scaffold "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=<PATH>\northwind.accdb;Mode=ReadWrite" EntityFrameworkCore.Jet -o Models

# VS2022包管理器控制台命令
Scaffold-DbContext -Connection "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=<PATH>\northwind.accdb;Mode=ReadWrite" -Provider EntityFrameworkCore.Jet

5. 提升运行权限

右键Visual Studio或VSCode,选择以管理员身份运行,避免因权限不足无法读取数据库元数据。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 23:00:15