小编Fer*_*iro的帖子

错误 使用 Scaffold-DbContext、EntityFrameworkCore.Jet、.NetCore 时,无法从程序集 System.Data 加载类型 System.Data.OleDb.OleDbConnection

我正在尝试使用 Entity Framework Core 中的 Scaffold-DbContext 从现有的 MS Access 数据库创建模型。

在包管理器控制台中运行命令时:

Scaffold-DbContext "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Folder\Database.mdb;" EntityFrameworkCore.Jet
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Could not load type 'System.Data.OleDb.OleDbConnection' from assembly 'System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=123123123'.
Run Code Online (Sandbox Code Playgroud)

我正在使用具有以下设置的 ClassLibrary 项目:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <PlatformTarget>AnyCPU</PlatformTarget>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="EntityFrameworkCore.Jet" Version="2.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.2.4" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.2.4">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
    </PackageReference>
  </ItemGroup>

</Project>
Run Code Online (Sandbox Code Playgroud)

我正在使用EntityFrameworkCore.Jet提供程序。

x32 和 x64 OleDb Dll 都在机器中:

C:\Program Files\Common Files\microsoft shared\OFFICE14\ACEOLEDB.DLL
C:\Program Files (x86)\Microsoft Office\root\VFS\ProgramFilesCommonX86\Microsoft Shared\OFFICE16\ACEOLEDB.DLL
Run Code Online (Sandbox Code Playgroud)

从 Microsoft …

entity-framework-core .net-core jet-ef-provider .net-core-2.2

7
推荐指数
2
解决办法
5744
查看次数