Простое добавление Entity Framework Core в базовое приложение-функцию Azure приводит к ошибке

Описать очень просто:

  • Создайте новое решение, используя шаблон «Функции Azure» из Visual Studio 2019 (16.4.1).
  • Измените TargetFramework на «.NET Core 3.1».
  • Он будет создан с помощью Microsoft.NET.Sdk.Functions (1.0.29).
  • Обновите его до последней версии (3.0.1).
  • It will not work, because now we will need some other nuget packages:
    • Microsoft.Azure.WebJobs.Core (3.0.14)
    • Microsoft.Azure.WebJobs.Extensions.Http (3.0.2)
  • В этот момент приложение работает в эмуляторе. Просто запустите отладчик, и в окне консоли будет видно, что все в порядке и работает.

  • Теперь добавьте пакет Microsoft.EntityFrameworkCore (3.1.0)

На этом этапе мы не касались ни одной строчки кода, а просто добавили последние версии данных пакетов nuget, а также установили последнюю целевую платформу. Тем не менее, приложение Azure Functions больше не работает, вызывая эту ошибку при запуске эмулятора с отладчиком или без него:

Microsoft.Azure.WebJobs.Host: ошибка метода индексации "Function1".
Microsoft.Azure.WebJobs.Host: невозможно привязать параметр "log" к типу ILogger. Убедитесь, что тип параметра поддерживается привязкой. Если вы используете расширения привязки (например, Azure Storage, ServiceBus, таймеры и т. Д.), Убедитесь, что вы вызвали метод регистрации для расширений в коде запуска (например, builder.AddAzureStorage (), builder.AddServiceBus ( ), builder.AddTimers () и т. д.).


person Andrea    schedule 11.12.2019    source источник
comment
Проблема возникает также, если вы просто ссылаетесь на другой проект (библиотеку классов), который включает Entity Framework Core: это была моя ситуация, вызывающая проблему.   -  person Andrea    schedule 11.12.2019
comment
Глядя на внутренние зависимости, я вижу, что все пакеты nuget относятся к Microsoft.Extensions.Logging (3.1.0), Microsoft.Extensions.Logging.Abstractions (3.1.0), Microsoft.Extensions.Logging.Configuration (2.1.0) ), поэтому они не должны конфликтовать друг с другом.   -  person Andrea    schedule 11.12.2019
comment
Поддержка .NET Core 3 для Функций Azure (декабрь 2019 г.) все еще находится в предварительной версии - может быть, сообщить команде Функций Azure об этой проблеме?   -  person marc_s    schedule 11.12.2019
comment
Хороший момент, marc_s: но я просто попытался использовать .NET Core 3.0 и .NET Core 2.2, и ошибка (и) точно такая же ...   -  person Andrea    schedule 11.12.2019
comment
marc_s: см. комментарий ниже. Используя .NET Core 2.2 и EF Core 2.2.6, он работает, все еще поддерживая другие пакеты по сравнению с версией 3 ... Во всяком случае, для меня это выглядит странно ... :-)   -  person Andrea    schedule 11.12.2019


Ответы (1)


Обновление: только что протестировал и запустил обновление для 3.1.0 - я бы проверил свой проект и попытался выяснить, не втягивает ли вы какие-то другие конфликтующие зависимости - но это работает с 3.1.0 и netcoreapp3.1

https://github.com/jeffhollan/functions-chsarp-entitycore-3

- Оригинальный ответ

Если бы это работало с ядром сущности 3.0.1. Еще не пробовал с 3.1.0, но могу проверить позже. На данный момент это должно работать

person jeffhollan    schedule 11.12.2019