ASP.NET 5 다중 dbcontext 문제

asp.net asp.net-core c# entity-framework entity-framework-core

문제

나는 새로운 ASP.NET 5 베타 8을 가지고 놀고 있고 두 개의 dbcontext가있을 때 문제가 있습니다.

나는 다음과 같은 프로젝트 구조를 가지고있다.

-Data(Identity 3 db with other entities)
-Resources (Contains a db with translations)
-WebApp 

웹 애플리케이션의 Startup.cs에서 일부 코드 제거

-Data(Identity 3 db with other entities)
-Resources (Contains a db with translations)
-WebApp 

ResourceDbContext와 DatabaseContext에서 나는 다음을 수행한다.

-Data(Identity 3 db with other entities)
-Resources (Contains a db with translations)
-WebApp 

그러나 appsettings.json에서 연결 문자열을 읽을 때 ConfigureServices에 올바른 값이 나타납니다. 그러나 DbContextOptions에는 최신로드 값 (이 경우에는 Resources에 대한 연결 문자열) 만 포함됩니다. 따라서 dbcontext는 둘 다 Resource db에 대한 연결을 설정합니다.

이에 대한 정보를 찾을 수 없습니다.

수락 된 답변

DbContextOptions이 제네릭 형식임을 나타 내기 만하면됩니다.

public ResourceDbContext(DbContextOptions<ResourceDbContext> options) : base(options)
{

}

이제 종속성 주입 시스템은 ResourceDbContext를 생성하고 생성자에 주입 할 때 적절한 종속성 ( DbContextOptions options )을 찾을 수 있습니다.

구현 AddDbContext 메서드를 참조하십시오.


Miroslav Siska의 경우 :

public ResourceDbContext(DbContextOptions<ResourceDbContext> options) : base(options)
{

}

인기 답변

큰 도움을 주셔서 감사합니다 !!!

완벽한 솔루션 :

  public class TenantDbContext : IdentityDbContext<ApplicationUser, IdentityRole, string>
{
    private string _connectionString { get; set; }  

    public TenantDbContext(DbContextOptions<TenantDbContext> options) : base(options)  
    {
        this._connectionString = "Connection String";
    }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    { 
        optionsBuilder.UseSqlServer(_connectionString); 
    }
}

ASP.NET 5 DI는 DbContext와 UserManager를 컨트롤러에 주입하기 위해 작동합니다. 이제 여러 데이터베이스로 로그인하고 등록 할 수 있습니다 ... 연결 문자열을 여기에 삽입하는 방법 만 확인하면됩니다. this._connectionString = "Connection String"; 그러나 그것은 간단합니다 ... 다시 한번 감사드립니다!




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.