0

일부 마이그레이션 작업에는 상당한 시간이 걸립니다. 그래서 어떤 종류의 이벤트 나 콜백을 구현하여 사용자 인터페이스에 통보해야한다는 것을 사용자에게 알리는 방법을 찾고 있습니다. 물론 커스텀 이벤트를 작성할 수는 있지만 핸들러를 어디에 두어야합니까?Entity Framework 코드 첫 번째 마이그레이션이 실행되고 있음을 사용자에게 알리는 방법은 무엇입니까?

일부 리소스에 대한 포인터는 어떻게 처리해야합니까?

+0

내가 생각하지 못한 것은 사용자가 결정한 특정 시간에 수동으로 마이그레이션을 실행하는지 또는 많은 데이터베이스가 있는지 여부와 사용자를 차단하는 자동화가 필요한지 여부입니다. 두 번째 옵션이 맞으면 내 대답이 도움이됩니다. 각 DB에 대한 간단한 플래그와 당신이 설정됩니다. – ilans

답변

0

마이그레이션이 시작되면 데이터베이스에 플래그를 지정하고 프로세스가 종료 될 때 플래그를 해제하지 않는 이유는 무엇입니까? 이 플래그는 사용자 인터페이스에 알리기 위해 쉽게 읽을 수 있습니다. 사용자 정의 이니셜을 사용하는 경우가

  • 사용할 수있는 "이벤트"는 InitializeDatabase 기능입니다 : ... 간단하게 여기

    는 플래그를 높이기 위해 몇 가지 아이디어가 있습니다.
  • 내가하는 것처럼 DbMigrator을 사용하는 경우 마이그레이션을 수동으로 수행하기 위해 초기화 전에 데이터베이스에 플래그를 지정할 수 있습니다. 당신은 DbMigrator을 사용하는 방법 here (저의 대답은 아래에 있습니다)을 볼 수 있습니다.
  • 또 다른 옵션은 첫 번째 이전의 Up 기능입니다 (작동 할 수있는 자동 마이그레이션을 사용할 때).하지만 좀 더 까다 롭습니다.
+0

나는 '깃발'이 무슨 뜻인지 이해하지 못합니다 : 그것은 어떤 종류의 세계적인 재산입니까 아니면 행사입니까? InitializeDatabase가 실제로 'Up'메서드를 호출하는지 어떻게 확인합니까? – Dabblernl

+0

@Dabblernl -'flag'에 의해 데이터베이스의 간단한 부울 필드를 의미합니다. 일부 필드에는 0/1을 넣습니다. 마이그레이션이 시작되면 1을 입력하고 UI에서이 값을 읽어 마이그레이션이 시작되었는지 여부를 확인합니다. – ilans

+0

@Dabblernl - DbMigrator를 사용하는 것이 가장 좋을 것입니다. 데이터베이스를 생성 할 때'GetPendingMigrations.Count'를 사용하는 마이그레이션이 있는지 확인해야합니다. 두 줄의 코드입니다. – ilans

관련 문제