Entity Framework Core и MS Access - PullRequest
       40

Entity Framework Core и MS Access

0 голосов
/ 21 декабря 2018

Я пытаюсь использовать базу данных Access из приложения WPF MVVM, используя JetEntityFrameworkProvider , и не могу заставить ее работать.Я создал модели, создал миграции, используя Add-Migration, но когда я запускаю Update-Database, команда никогда не завершается.Он создает базу данных, но единственной таблицей является MSysAccessStorage.Есть раздел документации , в котором написано

. Для работы провайдера таблица 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 голосов
/ 21 декабря 2018

Поставщик JetEntityFramework не совместим с EF Core.

Вместо этого используйте EntityFrameworkCore.Jet , если вы хотите использовать EF Core (того же автора, что и JetEntityFramework, не аффилированный) или использоватьEF 6, если вы хотите использовать JetEntityFramework.

...