Добавьте поддержку Entity Framework в функцию Azure

#c# #azure #.net-core #azure-functions

Вопрос:

У меня есть следующая структура проекта в моей функции Azure:

  • Приложение.Функция
  • Приложение.Домен
  • Приложение.Инфраструктура

Это прекрасно работает. Все зависимости разрешаются без каких-либо ошибок.

Однако, когда я настраиваю Entity Framework на своем Infrastructure уровне и пытаюсь запустить приложение, я получаю следующую ошибку:

webjobsbuilderextensions.cs не найден

Когда я удаляю все, что связано с Entity Framework, и пытаюсь запустить приложение, оно снова работает.

В моем Startup.cs у меня есть следующий фрагмент кода:

 builder.Services.AddDomain(connectionString);
 

Приложение.Домен.Инъекции:

 public static class Injections
{
    public static IServiceCollection AddDomain(this IServiceCollection services, string connectionString)
    {
        services.AddTransient<ISalesItemService, SalesItemService>();
        services.AddPersistence(connectionString)

        return services;
    }
}
 

Приложение.Инфраструктура.Инъекции:

 public static class Injections
{
        public static IServiceCollection AddPersistence(this IServiceCollection services, string connectionString)
        {
            services.AddTransient<ISalesItemDataService, SalesItemDataService>();

            services.AddDbContext<IOnePlmSubContext, OnePlmSubContext>(
                options => options.UseSqlServer(connectionString),
                ServiceLifetime.Transient,
                ServiceLifetime.Transient);

            return services;
        }
}
 

Кто-нибудь еще сталкивался с той же проблемой, что и я? Разве я не могу иметь такую многоуровневую структуру при работе с функциями Azure?

Комментарии:

1. Какую версию EF и .net core вы используете ?

2. @auburg: Я использую версию 5.0.6 EF и .NET Core 3.1

3. Попробуйте понизить версию EF Core до 3.1,заново построить и повторно протестировать функцию.

4. @AndrewHalil: Это сработало.

Ответ №1:

Обобщите комментарии для справки других сообществ:

Просто понизьте версию EF Core до 3.1 и заново создайте функцию, затем восстановите функцию, она работает.