Я пытаюсь создать простой веб-API с функциями Azure (триггер Http).
В моей функции я хочу получить доступ к базе данных SQL Server.
Я хотел бы получить свои данные из базы данных, используя Entity Framework Core.
Я бы предпочел использовать новейшие версии, доступные на момент публикации этого:

  • Entity Framework Core 3.1.0
  • Функции Azure v3 (.NET Core)

У меня есть база данных, поэтому я хочу провести обратный инжиниринг с помощью команды Scaffold-DbContext.
Для этого я добавил следующие пакеты в проект Azure Functions v3, созданный в Visual Studio:

  • Microsoft.EntityFrameworkCore.SqlServer (3.1.0)
  • Microsoft.EntityFrameworkCore.Tools (3.1.0)

При запуске команды Scaffold-DbContext в консоли диспетчера пакетов появляется следующая ошибка:

введите описание изображения здесь

Что я делаю не так?
Что я могу сделать, чтобы это исправить?

2
Stephan Smit 17 Дек 2019 в 14:59

2 ответа

Лучший ответ

Я нашел решение проблемы.

Когда проект собирается, dll проекта создается в папке bin \ Debug \ netcoreapp3.0 \ bin , но когда вы пытаетесь запустить команду Scaffold-DbContext, она ищет ее в бине. Папка \ Debug \ netcoreapp3.0 .

Решение. Просто скопируйте dll проекта в эту папку, и тогда все заработает.

1
Stephan Smit 18 Дек 2019 в 14:10

Для ошибки попробуйте добавить

<PropertyGroup>               
    <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
</PropertyGroup>

В ваш файл .csproj. Проверьте, можно ли это решить.

Если это не работает, попробуйте создать новый проект под тем же решением и запустите команды платформы сущностей в этом проекте. Это должно работать. Затем импортируйте этот проект в ваш первый проект, это похоже на проблему с функцией Azure.

0
Bowman Zhu 18 Дек 2019 в 08:59