.net core 使用Scaffold DbContext、EntityFrameworkCore.Jet、.NetCore时,无法从程序集系统加载类型System.Data.OleDb.OleDbConnection

.net core 使用Scaffold DbContext、EntityFrameworkCore.Jet、.NetCore时,无法从程序集系统加载类型System.Data.OleDb.OleDbConnection,.net-core,entity-framework-core,.net-core-2.2,jet-ef-provider,.net Core,Entity Framework Core,.net Core 2.2,Jet Ef Provider,我试图使用实体框架核心中的scaffoldbcontext从现有的MS-Access数据库创建模型 运行命令时,在Package Manager控制台中: Scaffold-DbContext "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Folder\Database.mdb;" EntityFrameworkCore.Jet 我得到以下错误: Could not load type 'System.Data.OleDb.OleDbCon

我试图使用实体框架核心中的scaffoldbcontext从现有的MS-Access数据库创建模型

运行命令时,在Package Manager控制台中:

Scaffold-DbContext "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Folder\Database.mdb;" EntityFrameworkCore.Jet
我得到以下错误:

Could not load type 'System.Data.OleDb.OleDbConnection' from assembly 'System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=123123123'.
我正在使用具有以下设置的类库项目:

<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>
从Microsoft Access数据库引擎2010安装的x64可重新发行 以及Office Professional Plus 32位的x32

scaffoldsql数据库运行良好

已经去了


是否缺少某些内容或此设置应能正常工作?任何帮助都将不胜感激。

您需要以.Net Framework为目标

实际上OleDb并没有移植到.Net内核。


您可以尝试使用.Net Framework 4.6或4.7。

您需要以.Net Framework为目标

实际上OleDb并没有移植到.Net内核。


您可以尝试使用.Net Framework 4.6或4.7。

以下类型直到2019年9月才可用于.Net Core(预览版之外):

  • System.Data.OleDb.OleDbCommand
  • System.Data.OleDb.OleDbCommandBuilder
  • System.Data.OleDb.OleDb连接
  • System.Data.OleDb.OleDb数据适配器
  • System.Data.OleDb.OleDbDataReader
  • System.Data.OleDb.OleDb参数表
  • System.Data.OleDb.OleDbParameterCollection
  • System.Data.OleDb.OleDbTransaction
它们现在在Nuget包中提供,该包的目标是.NETCore2.1、.NETFramework 4.6.1、.NetStandard2.0和其他框架

如果添加此软件包,您现在应该能够以.NET Core为目标,或者,如果您愿意,可以以.NET Core和.NET Framework为多目标


另请参见:导致此软件包开发和发布的。以下类型在2019年9月之前.NET Core(预览版之外)不可用:

  • System.Data.OleDb.OleDbCommand
  • System.Data.OleDb.OleDbCommandBuilder
  • System.Data.OleDb.OleDb连接
  • System.Data.OleDb.OleDb数据适配器
  • System.Data.OleDb.OleDbDataReader
  • System.Data.OleDb.OleDb参数表
  • System.Data.OleDb.OleDbParameterCollection
  • System.Data.OleDb.OleDbTransaction
它们现在在Nuget包中提供,该包的目标是.NETCore2.1、.NETFramework 4.6.1、.NetStandard2.0和其他框架

如果添加此软件包,您现在应该能够以.NET Core为目标,或者,如果您愿意,可以以.NET Core和.NET Framework为多目标


另请参见:导致此软件包开发和发布的原因。

是否仍然如此?还是.NET core 3.1兼容?不兼容。看看斯蒂芬·肯尼迪的回答,还是这样吗?还是.NET core 3.1兼容?不兼容。见斯蒂芬·肯尼迪的答案
C:\Program Files\Common Files\microsoft shared\OFFICE14\ACEOLEDB.DLL
C:\Program Files (x86)\Microsoft Office\root\VFS\ProgramFilesCommonX86\Microsoft Shared\OFFICE16\ACEOLEDB.DLL