2012-07-28 4 views
1

지금까지 MVC3에서 Linq과 Sql을 사용하여 모든 모델을 미리 생성하고 데이터베이스를 직접 만들고 dbml 편집기로 테이블을 이동했습니다. if 편집기에서 엔티티를 제거하고 다시 드래그하여 테이블을 변경하려고했습니다. 그것은 완벽하게 잘 작동하지만, 나는 마이크로 소프트가 EF로 계속 전진하고 있다는 것을 알아 냈다.엔티티 프레임 워크를 설명해주십시오 asp.net

기사를 읽은 후 완전히 혼란 스럽습니다. 코드 첫 번째 접근법부터 시작하겠습니다. 이해할 수있는 것처럼 개발자가 먼저 엔터티의 모델을 만든 다음 모델에서 데이터베이스를 만듭니다. 여기서 가장 혼란스러운 것은 모델을 변경할 때 런타임에서 모델을 엔티티와 비교할 때 두 모델이 동일하지 않다고 판단하면 모든 테이블을 삭제하고 다시 작성한다는 것입니다. 그렇다면 내 데이터를 어떻게 유지합니까? 내 테이블을 모두 삭제하지 않도록 저장하려면 어떻게합니까? 대신 "데이터베이스 우선"접근 방식을 사용해야합니까?

도와주세요. 감사!

답변

4

Linq To Sql 대신 엔티티 프레임 워크를 살펴볼 수 있습니다. Microsoft는 EF에 중점을 둡니다. 데이터베이스와

  • 코드 먼저
  • 먼저

    • 데이터베이스 먼저
    • 모델 먼저 당신이 당신을 위해 모델을 만드는 데 사용하는 기존 데이터베이스가 : 엔터티 프레임 워크는 세 가지 옵션이 있습니다. 이 작업은 설계자가 모델의 모양과 엔티티와 데이터베이스 간의 매핑을 수정할 수있는 방법을 보여줍니다.

      모델은 빈 디자이너로 시작됩니다. 엔티티를 만든 다음 엔티티 프레임 워크가 이에 대한 데이터베이스 스키마를 만들도록합니다.

      코드가 처음에는 디자이너가 없습니다. 대신 엔티티를 코드로 만들고 런타임에 Entity Framework가 엔티티에서 데이터베이스로 매핑을 만듭니다. 이것은 일부 규칙 (자체 테이블에 대한 각 엔티티, 기본 키로서의 ID 특성) 및 사용자가 추가 할 수있는 사용자 정의 맵핑에 의해 수행됩니다.

      Linq에서 Sql 배경으로 모델/데이터베이스 첫 번째 familair 소리 수 있습니다. 코드 퍼스트는 순수한 POCO 인 클린 도메인 모델을 만들고자하는 사람들에게 어필하는 새로운 방법입니다. 그들은 코드가 아니라 데이터베이스에 초점을 맞추고 있습니다.

      세 가지 모두를 시험해 볼 수 있습니다. 그들은 모두 공통 기반과 몇 가지 추가 기능을 가지고 있습니다.

      코드 첫 번째는 데이터베이스를 만들 때 상당히 많은 옵션이 있습니다. Here 시작하는 데 도움이되는 정보를 찾을 수 있습니다. 매번 데이터베이스를 삭제하고 다시 작성하는 이유는 데이터베이스 초기화 프로그램 때문입니다. 데이터베이스를 작성, 재 작성 및 갱신하는 몇 가지 옵션이 있습니다.

      개발 환경에서는 각 모델 변경시 데이터베이스를 삭제하고 만드는 것이 가장 쉽습니다. 초기 테스트 데이터를 사용하여 데이터베이스를 시드 할 수도 있습니다. 프로덕션 환경에서는 코드 첫 마이그레이션을 사용하여 각 모델 변경시 데이터베이스를 마이그레이션하여 데이터를 보존합니다.

    1

    두 테이블이 같지 않다면 모든 테이블을 삭제하고 테이블을 다시 만듭니다.

    기본적으로 예외가 발생합니다. 응용 프로그램에 데이터베이스를 삭제하고 다시 작성하도록 명시 적으로 지시해야합니다. EF 코드를 처음 사용하는 경험이 없지만 (데이터베이스 만 먼저 사용) 프로덕션 환경에서 데이터베이스를 삭제하고 다시 생성하는 팬이 아닙니다. 개발 중에 이것은 괜찮을 것입니다.

    어떻게 데이터를 보존 할 수 있습니까?

    Code First Migrations을 사용하십시오.

    더 많은 링크 : 모델은 데이터베이스와 일치하지 않는 경우, 첫째 기본적으로

    EF 4.2 Code First Walkthrough

    Entity Framework Homepage

    1

    코드는 단순히 예외가 발생합니다. 데이터베이스의 강제 재생성을 초래하는 "드롭 또는 다시 작성"이니셜 라이저 (IDatabaseInitializer)를 생성 (및 설정) 한 것 같습니다. 여러 종류의 초기화 프로그램을 만들 수 있습니다. 그 중 하나는 EF 4.3.1을 처음 사용하며, 삭제 및 다시 작성하는 것과는 반대로 db migration을 허용합니다.

    관련 문제