2012-01-12 3 views
0

가능한 중복은 : 엔티티 프레임 워크 - 먼저 코드를 작성하거나 모델링 하시겠습니까?


EF 4.1 Code-first vs Model/Database-first

나는 몇 가지 조사를 만들었지 만, 대답은 나를 만족하지 않았다. 데이터베이스를 사용하여 엔티티 프레임 워크를 사용하여 자체 asp.net mvc 응용 프로그램을 시작했습니다. 나는 데이터베이스에서 모델을 만드는 것보다 데이터베이스를 만드는 것으로 시작했습니다. 글쎄, 나는 "모델 우선"이라는 것을 알고있다. 나는 학교에서 그것을하는 두 번째 방법을 안다 (코드 첫 번째). 제 강사가 오늘 제게 말했듯이, 모델 우선의 방법은 오래된 구식입니다. 그게 사실인가요? 또는 어쩌면 : 코드 우선으로 이점이 있습니까? 당신의 의견으로는 더 나은, 진짜 차이점은 무엇입니까?

+3

IMHO, 먼저 코드를 작성하거나 나중에 울리십시오. – Yuck

+0

db에서 모델을 작성하는 경우 먼저 모델이 아닌 데이터베이스가 먼저 작성됩니다. –

답변

0

특히 EF 코드는 코드를 참조하고 모델은 데이터베이스를 먼저 참조합니다.

이것은 실제로 프로젝트에 따라 다릅니다. db가 응용 프로그램의 핵심으로 취급되거나 db 특정 기능을 사용하는 경우 모델 첫 번째 방법이 바람직합니다.

도메인 모델이 응용 프로그램의 핵심으로 취급되는 경우 코드를 영구 저장 영역의 형태로 유지하는 것이 코드 첫 번째 방법보다 실용적입니다.

참고 :이 개념은 일반적으로 모델 우선 (도메인/코드) 및 db 먼저 (db 스키마)라고합니다. EF에서는 모델이 db 스키마를 참조하기 때문에 다소 혼란 스럽습니다. 도메인 모델이 아니라 코드가 코드를 참조합니다.

+1

아니요, 모델 우선 및 코드 우선은 동일하지 않습니다. 모델 우선과 데이터베이스는 먼저 .edmx 파일을 사용하지만 코드 우선은 사용하지 않습니다. –

+0

차이점은 구현과 개념의 차이입니다. EF에서는 도메인을 코드로, 모델을 db로 지칭합니다. 개념적으로 모델은 코드이고 db는 db입니다. 나는 EF 정의의 관점에서 나의 대답을 업데이트 할 것이다. –

+2

아니요, 맞습니다. 코드 첫 번째 모델은 유창한 코드 매핑을 통해 정의됩니다. Model-first에서 모델은 XML 매핑을 통해 정의됩니다 (데이터베이스 에서처럼). 먼저 데이터베이스와 모델의 유일한 차이점은 시작 지점입니다. 먼저 데이터베이스에서 데이터 모델을 정의한 다음 리버스 엔지니어링하여 XML (.edmx 파일)로 만듭니다.모델에서 먼저 디자이너에서 데이터 모델을 정의한 다음 (또는 하드 코어 인 경우 코드화 된 XML을 손으로) XML에서 데이터베이스를 생성합니다. 두 경우 모두 XML로부터 Entity 클래스가 생성됩니다. 코드 첫 번째는 엔티티 클래스가 먼저 생성되었습니다. –

0

DB가 처음으로 오래된 것은 아닙니다. 사실, 많은 기업 프로젝트가 그 길입니다.

무언가를 처음부터 직접 만들려면 먼저 코드를 사용하는 것이 더 나을 것입니다.

0

Entity Framework는 1) 데이터베이스 먼저, 2) 모델 우선, 3) 코드 우선을 제공합니다. 2 edmx 파일을 만듭니다. 데이터베이스 먼저 엔티티 데이터 모델 (edmx : StorageModels)이 기존 데이터베이스에서 만들어집니다. 모델 첫 번째 : 디자이너와 매핑이 지정된 상태로 개념 데이터 모델 (edmx : ConceptualModels)이 만들어집니다. 이것으로 데이터베이스가 생성됩니다. 코드 첫 번째 : .NET 클래스를 만듭니다 (.edmx 파일 없음). 이것으로 데이터베이스가 생성됩니다.

'Old school'은 ADO.NET DataSet/DataTable을 사용합니다.

가장 빠른 데이터 액세스는 DataReader를 사용하고 사용자 고유의 데이터 액세스를 작성하는 것입니다. DataReader를 사용하여 자신의 POCO를 채우는 것보다 빠른 프레임 워크가 없습니다.

관련 문제