2017-10-25 1 views
0

이것이 가능한지 궁금합니다. ASP.NET 코어 및 EF 코어를 사용하여 MVC에 응용 프로그램을 작성하고 있습니다. 대부분의 경우, 필자는 코드 분할 마이그레이션을 수행하고 있습니다.Entity Framework 핵심 데이터베이스에서 테이블 마이그레이션

누군가 내가 사용하고있는 데이터베이스에 테이블을 추가했습니다. 테이블을 삭제하고 코드를 첫 번째 방법으로 수행하는 대신 DB 초기 마이그레이션을 사용하여 테이블을 가져오고 싶습니다.

DB 우선/코드 우선 기술을 혼합하고 일치시킬 수도 있습니까?

만약 그렇다면 어떻게해야합니까? 나는 하나의 테이블을 가져 오는 것에 대해서는 아무것도 찾을 수없는 것 같습니다. 전체 데이터베이스 만 마이그레이션합니다. 원하는 것은 아닙니다.

답변

0

예, 가능합니다. 단계는 다음과 같습니다.

  1. 모델 폴더를 마우스 오른쪽 단추로 클릭하십시오.
  2. 추가 -> 새 항목 추가
  3. 새 항목 추가 창에서 데이터 -> ADO.NET 엔터티 데이터 모델을 선택합니다. (새 DbContext를 만들지 만 두 DbContext를 병합합니다.) 추가 클릭
  4. 엔터티 데이터 모델 마법사에서 데이터베이스의 코드 우선을 선택합니다.
  5. 연결 문자열을 선택하십시오.
  6. 아니요를 클릭하고 중요한 데이터를 제외하십시오 ...
  7. 연결 설정 저장의 선택을 취소하십시오.
  8. 다음을 클릭합니다
  9. 은 VS 두 개의 파일을 생성하는 것이이 시점에서 새로운 표를
  10. 클릭 마무리

를 선택 : 새 DbContext와 테이블의 모델을.

이제 새 DbContext를 열고 모델의 DbSet을 잘라내어 원래 DBContext에 붙여 넣으십시오. OnModelCreating 메서드의 내용도 잘라내서 원본 DbContext의 OnModelCreating 메서드 끝에 붙여 넣으십시오.

마지막 단계는 변경 사항을 무시하고 새로운 마이그레이션을 추가하는 것입니다. 예 : 추가 마이그레이션 NewTableAdded -IgnoreChanges -verbose

관련 문제