2016-12-21 3 views
3

의 환경에 따라 DbContext를 추가하는 방법이 내가 현재 Startup.cs 내 ConfigureServices 방법에 내 DbContext를 추가하고 방법입니다는 ASP.net 코어

public void ConfigureServices(IServiceCollection services) 
{ 
    ..... 

    services.AddDbContext<MyDbContext>(options => 
     options.UseMySQL(Configuration.GetConnectionString("DefaultConnection"))); 

    ..... 

} 

을 그리고 내 연결 문자열 내 appSettings는에 저장됩니다. 예를 들어이 같은 JSON 파일 :

{ 
    .... 
    "ConnectionStrings": { 
    "DefaultConnection": "server=localhost;user id=root;password=root;database=mydb;sslmode=none" 
    } 

    .... 

} 

내가 연결되고있는 데이터베이스를 전환하려면, 어떻게 그것을 "개발"인 경우는 "services.AddDbContext는()"데이터베이스를 전환해야합니까 대 " 생산 "환경?

답변

6

당신은 테스트 환경, 사용 appSettings는 들어 this-

같은 다른 appsettings 파일에서 다른 환경의 연결 문자열을 구성 할 수 있습니다. 테스트 자극 환경, 사용 appSettings는 들어

"Data": { 
    "MyDbContext": { 
     "ConnectionString": "" /*<<== TestDatabase connection string */ 
    }, 

.json. 자극 시험 또는 생산성 값으로 현재의 환경을 설정하는 .json

"Data": { 
    "MyContext": { 
     "ConnectionString": "" /*<<== ProdDatabase connection string */ 
    }, 

사용 ASPNETCORE_ENVIRONMENT 환경 변수.

시작에서

, 당신은 당신이 또한 환경에 특정 JSON 파일을 포함 할 수 잊지 마세요 this-

 services.AddDbContext<MyContext>(options => 
options.UseSqlServer(Configuration["Data:MyContext:ConnectionString"])); 
+2

처럼 사용할 수 있습니다. "appSettings는 {env.EnvironmentName} .json"'.AddJsonFile ($를, 선택 : true)' – DavidG

+0

@DavidG 내 생각에, 이것은 asp.net-core VS2015 템플릿에서 기본적으로 사용할 수 있습니다. – Sanket

+0

@DavidG, 이것은 기본적으로 포함되어 있지만 그게 무엇인지 궁금해하고있었습니다. 감사! –