Entity Framework에서 코드 우선 디자인을 사용해야하는 3 가지 이유
1) 부스러기, 부풀림 감소
기존 데이터베이스를 사용하여 .edmx 모델 파일 및 관련 코드 모델을 생성하면 자동 생성 된 코드가 엄청나게 쌓입니다. 무언가를 깨뜨 리거나 차세대에 변경 사항을 덮어 쓰지 않도록 이러한 생성 된 파일을 절대 만지지 마십시오. 컨텍스트와 이니셜 라이저 도이 혼란에 갇혀 있습니다. 계산 된 읽기 전용 속성과 같이 생성 된 모델에 기능을 추가해야하는 경우 모델 클래스를 확장해야합니다. 이것은 거의 모든 모델에 대한 요구 사항이되며 모든 것에 대한 확장으로 끝납니다.
먼저 코드를 작성하면 직접 코딩 한 모델이 데이터베이스가됩니다. 구축하는 정확한 파일은 데이터베이스 디자인을 생성하는 것입니다. 추가 파일이 없으며 속성이나 데이터베이스에서 알 필요가없는 항목을 추가하려는 경우 클래스 확장을 만들 필요가 없습니다. 적절한 구문을 따르는 한 동일한 클래스에 추가 할 수 있습니다. 원하는 경우 Model.edmx 파일을 생성하여 코드를 시각화 할 수도 있습니다.
2) 더 큰 통제
DB를 처음 사용하면 응용 프로그램에서 사용하기 위해 모델에 생성 된 내용을 마음대로 사용할 수 있습니다. 때때로 명명 규칙이 바람직하지 않습니다. 때때로 관계와 협회는 당신이 원하는 것이 아닙니다. 다른 경우에는 지연 로딩과의 비 일시적 관계가 API 응답에 혼란을 초래합니다.
모델 생성 문제에 대한 해결책은 거의 항상 있지만 코드를 먼저 실행하면 시작부터 완벽하고 세밀한 제어가 가능합니다. 비즈니스 오브젝트의 안락함에서 코드 모델과 데이터베이스 디자인의 모든 측면을 제어 할 수 있습니다. 관계, 구속 조건 및 연관을 정확하게 지정할 수 있습니다. 속성 문자 제한과 데이터베이스 열 크기를 동시에 설정할 수 있습니다. 열망하거나 직렬화하지 않을 관련 모음을 지정할 수 있습니다. 요컨대, 더 많은 일에 책임이 있지만 앱 디자인을 완전히 제어 할 수 있습니다.
3) 데이터베이스 버전 관리
이것은 큰 것입니다. 버전 관리 데이터베이스는 어렵지만 코드 우선 및 코드 우선 마이그레이션으로 훨씬 효과적입니다. 데이터베이스 스키마는 코드 모델을 기반으로하기 때문에 소스 코드의 버전을 제어하여 데이터베이스 버전을 관리 할 수 있습니다. 시드 고정 비즈니스 데이터와 같은 작업을 수행하는 데 도움이되는 컨텍스트 초기화를 제어해야합니다. 또한 코드 우선 마이그레이션을 생성해야합니다.
마이그레이션을 처음 활성화하면 구성 클래스와 초기 마이그레이션이 생성됩니다. 초기 마이그레이션은 현재 스키마 또는 기준 v1.0입니다. 이 시점부터 타임 순서가 지정되고 디스크립터로 레이블이 지정된 마이그레이션을 추가하여 버전 순서를 지정할 수 있습니다. 패키지 관리자에서 add-migration을 호출하면 UP () 및 DOWN () 함수 모두에서 코드 모델에서 변경된 모든 내용이 포함 된 새 마이그레이션 파일이 생성됩니다. UP 함수는 변경 사항을 데이터베이스에 적용하고 DOWN 함수는 롤백하려는 경우 동일한 변경 사항을 제거합니다. 또한 이러한 마이그레이션 파일을 편집하여 새 뷰, 인덱스, 저장 프로 시저 등의 추가 변경 사항을 추가 할 수 있습니다. 이들은 데이터베이스 스키마를위한 진정한 버전 관리 시스템이 될 것입니다.