2016-06-19 1 views
3

저는 현재 .NET 도구 (ASP.NET, MVC)로 웹 개발을 연구하고 있습니다. 아이디어가 옳은 것인지 확실하지 않습니다.DataBase 업데이트 전에 DataBaseModel.edmx 업데이트를 저장하는 방법은 무엇입니까?

이미 참여하고 싶은 프로젝트가 있습니다. 그것은 DataBaseModel.edmx가 있고이 모델로부터 데이터베이스 요소를 생성하는 방법을 알고 있습니다. 이제 새 요구 사항에 맞게 DataBaseModel을 조정해야합니다. 편집하여 데이터베이스에 테이블을 추가하기위한 코드와 새 스크립트를 생성하기 위해 변경 사항을 저장하려고했지만 프레임 워크에서 기존 엔티티와 새 엔티티를 일치시켜야했습니다. 하지만 기다려! 나는 테이블에 새로운 엔티티가 없기 때문에 내가 만들고 싶습니다.하지만 먼저 일치시켜야하기 때문에 할 수 없습니다!

내가 여기 잘못 왔음을 나타낼 수 있습니까? 데이터베이스를 올바르게 업데이트하려면 모델을 어떻게 조정해야합니까? 나는 인터넷을 들여다 보았다. 그러나 나는 여전히 그 점을 이해하지 못했다.

+1

모델 우선 (사용하려고 시도하는)과 데이터베이스 우선 (실제로 사용하는)이 혼란 스럽습니다. 이 모든 것을두고 코드를 먼저 작성하는 것이 좋습니다. –

+0

@GertArnold 흠, 이미 가지고있는 기존 엔티티의 모든 자동 생성 코드는 어떻게됩니까? 프레임 워크가이 전환을 코드 우선으로 처리하는 방법은 무엇입니까? 실제로 이러한 모든 접근법에서 길을 잃은 이유는 코드 첫 번째와 첫 번째 코드가 널리 사용되고 문서화가 잘되어 있기 때문에 모델은 그다지 인기가없는 것처럼 보입니다. – Semant1ka

+0

모델 우선 클래스를 그대로 사용할 수 있습니다. 그러나 필요한 경우 특정 매핑을 추가하는 데 약간의 노력이 필요할 수 있습니다. 또는 엔티티 데이터 모델의 VS 도구를 사용하여 처음부터 데이터베이스에서 코드 우선 모델을 생성 할 수 있습니다. –

답변

0

마지막으로, 문제가 무엇인지 이해했습니다.

오류에 대한 모든 메시지 (약 50 개가 있음) 중에서 더 이상 실제가 아닌 것처럼 보이는 두 개의 연관 때문에 오류가 두 개있었습니다. 이 연관성은 이미 모델에서 제거한 필드를 사용하고있었습니다. 모델의 XML보기에서보기가 더 쉬웠습니다.

이러한 중복 연결을 제거하자마자 모델에서 데이터베이스를 생성 한 다음이 모든 작업자를 정상적으로 처리 할 수있었습니다.

1

프로젝트에서 데이터베이스 우선 접근 방식을 사용하고 있지만 모델 우선 접근 방식을 생각하고 있습니다.

코드 하드 코어 프로그래머가 디자이너의 어떤 종류를 좋아하지 않아 및 EDMX XML의 정의 매핑이 너무 복잡하기 때문에 매우 인기 •

첫째.

코드를 완벽하게 제어 할 수 있습니다 (수정하기 어려운 자동 생성 코드 없음).

• 일반적으로 DB 사용을 염려하지 않아야합니다. DB는 논리가없는 단순한 저장소입니다. EF는 창작을 처리 할 것이고 당신은 그 일이 어떻게 이루어지는 지 알고 싶지 않을 것입니다.

• 데이터베이스를 수동으로 변경하면 코드에서 데이터베이스를 정의하기 때문에 손실 될 가능성이 높습니다.

데이터베이스 당신은 DB, DBA가 설계 별도로 개발하거나 DB를 기존의 경우 경우 매우 인기 •

첫째.

• EF에서 엔티티를 만들도록하고 매핑을 수정 한 후에는 POCO 엔티티를 생성합니다.

• POCO 엔티티에 추가 기능을 원하면 템플릿을 T4 수정하거나 부분 클래스를 사용해야합니다.

• 데이터베이스에서 도메인 모델을 정의하기 때문에 수동으로 데이터베이스를 변경할 수 있습니다. 데이터베이스에서 모델을 항상 업데이트 할 수 있습니다 (이 기능은 상당히 효과적입니다).

• 자주 VS 데이터베이스 프로젝트 (프리미엄 및 얼티밋 버전 만)를 함께 사용합니다.

모델 첫

• 당신은 디자이너 팬 (= 당신은 코드 또는 SQL을 작성 좋아하지 않는) 경우 이럴 인기.

• 모델을 "드로잉"하고 워크 플로에서 데이터베이스 스크립트를 생성하고 T4 템플릿이 POCO 엔티티를 생성하도록합니다. 엔티티와 데이터베이스 모두를 일부 통제 할 수 없지만 작은 쉽고 간단한 프로젝트의 경우 매우 생산적입니다.

• POCO 엔티티에 추가 기능을 원하면 템플릿을 T4 수정하거나 부분 클래스를 사용해야합니다.

• 데이터베이스를 수동으로 변경하면 모델에서 데이터베이스를 정의하기 때문에 손실 될 가능성이 높습니다. 데이터베이스 생성 파워 팩을 설치 한 경우이 방법이 더 효과적입니다. VS에서 데이터베이스 스키마를 업데이트하거나 새로 만드는 대신 데이터베이스 스키마를 업데이트 할 수 있습니다.

+0

좋은 개요를 가져 주셔서 감사합니다! – Semant1ka

관련 문제