【问题标题】:Entity Framework Core and MS AccessEntity Framework Core 和 MS Access
【发布时间】:2018-12-21 14:26:36
【问题描述】:

我正在尝试使用 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;" );
}

我做错了什么?

【问题讨论】:

  • 为什么不直接安装 SQL Server? developer edition is free。如果您计划开发除快速家庭测试之外的任何东西,那么将缺少 Access。你最好从一开始就学习使用适当的工具

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-05
    • 2018-02-23
    • 2017-10-27
    • 1970-01-01
    • 2021-04-08
    • 2019-02-19
    • 2017-10-28
    • 2019-01-11
    相关资源
    最近更新 更多