代码之家  ›  专栏  ›  技术社区  ›  Andrus

如何在.NET5应用程序中使用多个版本的程序集

  •  0
  • Andrus  · 技术社区  · 3 年前

    同一应用程序中有不同版本的application EF Core数据库上下文程序集:

    DbContext.dll
    DbContextV1.dll
    DbContextV2.dll
    ...
    DbContextVn.dll
    

    DbContext.dll

    数据库特定版本V1。。Vn是使用Roslyn创建的,可以存储在应用程序目录中。

    https://example.com/V1   should use  DbContextV1.dll
    https://example.com/V2   should use  DbContextV2.dll
    

    等。

    DbContext已在中注册启动.cs作为作用域服务:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddHttpContextAccessor();
        services.AddScoped<DbContext>();
        ...
     }
    

    如何强制DI使用特定于请求的程序集版本来创建DbContext实例? 是否可以创建自定义范围的服务工厂或使用其他DI库?

    这是ASP.NET5 MVC核心应用程序,使用EF核心和Npgsql数据提供程序。

    0 回复  |  直到 3 年前