我是 Entity Framework 的新手,今天我正在尝试开发一个简单的 C# 脚本,它将使用 Entity Framework Core Jet 来列出本地 MS Access DB 中指定的所有公司。
但是,我在“OnConfiguring”函数中不断收到错误消息,它说:
System.TypeLoadException:来自程序集“EntityFrameworkCore.Jet,版本=2.2.0.0,文化=中性,PublicKeyToken=adb9793829ddae60”的“EntityFrameworkCore.Jet.Infrastructure.Internal.JetOptionsExtension”类型中的“方法“get_Info”没有实现。
请注意,我正在开发的 C# 控制台应用程序是在 .NET 框架 4.7.2 中开发的。我也尝试使用 .NET Core 3、.NET Core 2.1 等开发相同的脚本,但所有这些都有相同的结果。
我在下面提供了有关数据库的所有信息以及我迄今为止编写的代码。
数据库设计
数据库仅包含一个名为“Companies”的表,其中包含以下字段:
- ID(自动编号,主键)
- 公司名称(短文本)
数据上下文.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:\Users\arand\Desktop\EFTestProject\Data\Data.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();
}
}
}
谢谢!