我是Entity Framework的新手,今天我正试图开发一个简单的C#脚本,该脚本将使用Entity Framework Core Jet来列出本地MS Access DB中指定的所有公司。
然而,我在";OnConfiguring";函数,上面写着:
系统。TypeLoadException:类型中的"Method"get_Info"'EntityFrameworkCore。喷气式飞机基础设施内部的JetOptionsExtension来自程序集"EntityFrameworkCore"。Jet,版本=2.2.0.0,区域性=中性,PublicKeyToken=adb9793829ddae60'没有">
请注意,我正在开发的C#控制台应用程序是在中开发的。NET框架4.7.2。我也尝试过用开发相同的脚本。NET核心3。NET Core 2.1等,但所有这些都有相同的结果。
我在下面提供了数据库的所有信息和我迄今为止编写的代码。
数据库设计
数据库只包含一个名为"的表;Companies";,其中包含以下字段:
- ID(自动编号,主键(
- 公司名称(短文本(
DataContext.cs
using System;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;
using EntityFrameworkCore.Jet;
namespace EntityFrameworkCoreJetTest5 {
public class DataContext : DbContext {
public DbSet<Company> Companies { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {
//The issue occurrs here
optionsBuilder.UseJet(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:UsersarandDesktopEFTestProjectDataData.accdb;");
}
}
public class Company {
public int ID { get; set; }
public string CompanyName { get; set; }
}
}
程序.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EntityFrameworkCoreJetTest5 {
class Program {
static void Main(string[] args) {
using (DataContext dbContext = new DataContext()) {
foreach(Company c in dbContext.Companies) {
Console.WriteLine(c.CompanyName);
}
}
Console.ReadKey();
}
}
}
谢谢!
系统。TypeLoadException:类型"EntityFrameworkCore"中的"Method"get_Info"。喷气式飞机基础设施内部的程序集"EntityFrameworkCore中的JetOptionsExtension"。Jet,Version=2.2.0.0,Culture=neutral,PublicKeyToken=adb9793829ddae60"没有实现。">
2.2.0
版本中的EntityFrameworkCore.Jet
提供程序仅与EF Core 2.2.x兼容,因此无法与EF Core 3.0.0+.一起使用
如果您想将EntityFrameworkCore.Jet
与EF Core 3.1一起使用,请使用nuget.org上的最新官方预发布版本(截至目前,这是3.1.0-alpha.3
(,或使用AZDO提要中的最新每日版本。
确实如此。NET标准2.0兼容,因此可以与兼容。NET Framework 4.6.1+和。NET(Core(2.0+.