Entity Framework Core и. NET Standard 2.0 - несогласованное поведение - PullRequest
0 голосов
/ 27 мая 2020

Среда : VS2019 - ver16.6, Windows 10 pro 1903

Я следил за по этой ссылке от команды Microsoft, чтобы создать решение VS2019 с проектом библиотеки .NET Standard 2.0 и фиктивное приложение .NET Core Console как запускаемый проект. В этом решении я также следовал этому официальному руководству EF Core , чтобы создать SQLite db (называемый MySQLiteDb.db), который создается в каталоге root dummy .NET Core Console.

Впоследствии я сослался на эту .NET Standard библиотеку в одном из моих WPF Full Framework проектов для выполнения некоторых операций с базами данных. Для этого я скопировал MySQLiteDb.db из вышеуказанного проекта в этот WPF и установил его действие Copy to output directory на Copy if newer с Build Action как None. Теперь это приложение WPF Full Framework отлично работает и выполняет несколько операций с базами данных для MySQLiteDb.db.

Но когда я делаю то же самое, что и выше, в проекте Microsoft VSTO Add-in , ссылаясь на В той же библиотеке .NET Standard я получаю противоречивое поведение: например, в половине случаев приложение успешно выполняет вставку данных, но примерно в половине случаев приложение выдает следующую ошибку при вставке данных. И нет никакой проверки данных, потому что этот тестовый db имеет три простых текстовых столбца без уникальных ключей / индекса et c. Вопрос: Почему такое непоследовательное поведение в проекте VSTO, но не в проекте WPF, в то время как оба проекта - .NET 4.8. И как можно решить проблему?

Ошибка :

Внутреннее исключение 1: SqliteException: Ошибка SQLite 1: 'нет такой таблицы: MyTable'.

1 Ответ

0 голосов
/ 27 мая 2020

Почему такое несогласованное поведение в проекте VSTO, но не в проекте WPF, в то время как оба проекта. NET 4.8 проектов.

Необходимо убедиться, что надстройка использует расширение. Среда выполнения net framework 4.0 (CLR), которая соответствует. net framework 4.8, а не CLR 2.0. Вы можете использовать файл конфигурации, чтобы указать версию среды выполнения, которая будет использоваться ведущим приложением, см. Файлы конфигурации приложения для получения дополнительной информации об элементе runtime.

...