实体框架核心和MS Access

时间:2018-12-21 14:26:37

标签: c# ms-access entity-framework-core jet-ef-provider

我正在尝试使用JetEntityFrameworkProvider从WPF MVVM应用程序使用Access数据库,但无法使其正常工作。我已经创建了模型,使用Add-Migration创建了迁移,但是当我运行Update-Database时,命令永远不会完成。它确实创建数据库,但是唯一的表是MSysAccessStorage。 documentation的某个部分显示

  

为了使提供程序正常工作,表MSysRelationships应该   可以从管理员访问

再说

  

这是默认配置,因此无需进行更改。访问   由于版本2003具有可见的系统表,因此无需分配   权利。必须完成设置正确的双重表的配置   (非常早在您的代码中)。

     

JetConnection.DUAL = JetConnection.DUALForAccdb;

我尝试添加它,但是我无法弄清楚“代码中很早”在哪里。我已将其添加到App.xaml.cs的顶部以及数据库上下文中,但均无法正常工作。当我添加它时,我得到:

  

名称“ DUAL”在当前上下文中不存在。   当前上下文中不存在名称“ JetConnection.DUALForAccdb”。

这是我在上下文中的OnConfiguring

protected override void OnConfiguring( DbContextOptionsBuilder optionsBuilder )
{
    optionsBuilder.UseJet( @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\<User>\Desktop\New Folder\Staff.accdb;" );
}

我做错了什么?

1 个答案:

答案 0 :(得分:1)

JetEntityFramework提供程序与EF Core不兼容。

如果要使用EF Core(与JetEntityFramework相同的作者,不隶属),请使用EntityFrameworkCore.Jet,如果要使用JetEntityFramework,请使用EF 6。