문제

ASP.NET MVC에서 LINQ와 함께 프로젝트를 시작했으며 데이터베이스에 적절한 테이블을 생성하는 모델을 정의하는 멋진 방법이 있는지 궁금합니다. 나는 django (MVC 프레임 워크 측면에서)에 가장 익숙하며 .NET에 해당하는 .NET에 해당합니다. models.py 그래서 나는 모든 것을 버전으로 만들 수 있습니다. 어떤 아이디어? 어떤 형태의 스키마 마이그레이션, la django-evolution 등이 있다면 더 나을 것입니다.

도움이 되었습니까?

해결책

당신이하고 싶은 것은 질문을 돌리는 것입니다. 엔티티는 데이터베이스에서 자동으로 생성 될 수 있으므로 문제는 단순히 .NET 메커니즘을 사용하여 데이터베이스 스키마를 유지하는 것입니다. 이러한 다른 솔루션이 요구하는 nhibernate를 사용하지 않으므로 사용하는 것이 좋습니다. Migratordotnet. Migratordotnet은 Ruby on Rails 마이그레이션과 정확히 동일한 아이디어를 사용합니다.

  1. 데이터베이스는 해당 버전을 추적합니다
  2. 스키마를 변경할 때마다 업그레이드를 처리하기 위해 작은 클래스를 작성하십시오 (선택적으로 다운 그레이드)
  3. 이 클래스에 실행 순서를 할당하십시오
  4. 데이터베이스가 최신 상태가 아닌 경우 순서대로 클래스 업그레이드 방법을 실행하십시오.

컴파일 타임에 엔터티를 재생하기 때문에 마이그레이션 스크립트를 실행 한 다음 빌드 프로세스의 일부로 엔티티를 재생하는 것이 좋습니다. Migratordotnet은 이미 함께 제공됩니다 MSBuildTarget, 추가하면 몇 번의 클릭 만 포함됩니다.

다른 팁

또 다른 옵션은 nhibernate를 사용하는 것입니다 fluentnhibernate 규칙에 따라 모델을 자동 매핑합니다. 또한 맵핑을 무시하여 필요에 맞게 조정할 수 있습니다.

Castle Project Active Record는 좋은 방법입니다.

Ruby On Rails Active 레코드와 유사한 기능을 제공하는 경우.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top