Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Azure功能中添加对实体框架的支持_C#_Azure_.net Core_Azure Functions - Fatal编程技术网

C# 在Azure功能中添加对实体框架的支持

C# 在Azure功能中添加对实体框架的支持,c#,azure,.net-core,azure-functions,C#,Azure,.net Core,Azure Functions,我的Azure功能中有以下项目结构: 应用程序.功能 应用程序域 应用程序.基础设施 这个很好用。所有依赖项都已解决,没有任何错误 但是,当我在我的基础架构层中设置Entity Framework,并尝试运行该应用程序时,出现以下错误: 找不到webjobsbuilderextensions.cs 当我删除所有与实体框架相关的内容并尝试运行应用程序时,它会再次工作 在myStartup.cs中,我有以下代码段: builder.Services.AddDomain(connectionStr

我的Azure功能中有以下项目结构:

  • 应用程序.功能
  • 应用程序域
  • 应用程序.基础设施
这个很好用。所有依赖项都已解决,没有任何错误

但是,当我在我的
基础架构
层中设置Entity Framework,并尝试运行该应用程序时,出现以下错误:

找不到webjobsbuilderextensions.cs

当我删除所有与实体框架相关的内容并尝试运行应用程序时,它会再次工作

在my
Startup.cs
中,我有以下代码段:

builder.Services.AddDomain(connectionString);
Application.Domain.Injections:

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;
        }
}
公共静态类注入
{
公共静态IServiceCollection AddDomain(此IServiceCollection服务,字符串连接字符串)
{
services.AddTransient();
services.AddPersistence(connectionString)
返回服务;
}
}
Application.Infrastructure.Injections:

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;
        }
}
公共静态类注入
{
公共静态IServiceCollection AddPersistence(此IServiceCollection服务,字符串连接字符串)
{
services.AddTransient();
services.AddDbContext(
options=>options.UseSqlServer(connectionString),
服务寿命。暂时的,
服务寿命(瞬时);
返回服务;
}
}

有没有其他人经历过与我相同的问题?在使用Azure功能时,我不能使用这种分层结构吗?

总结评论供其他社区参考:


只需将EF Core的版本降级到3.1并重新构建函数,然后重新恢复函数,就可以了。

您使用的是什么版本的EF和.net Core?@auburg:Im使用的是5.0.6版本的EF和.net Core 3.1Try,将EF Core的版本降级到3.1并重新构建和重新测试函数。@Andrewhall:这很有效。