각 테이블에 대한 ADO.NET 엔티티 데이터 모델을 만들어야합니까, 아니면 전체 데이터베이스에 대해 하나를 만들어야합니까?

StackOverflow https://stackoverflow.com/questions/1028739

문제

각 테이블에 하나의 ado.net 엔티티 데이터 모델을 사용해야합니까? 또는 관계가 라우팅되는 전체 데이터베이스 등 ... 등 ...

도움이 되었습니까?

해결책

전체 데이터베이스를 위해 수행하십시오. 모든 테이블에 대한 데이터 모델을 만드는 경우 관계를 탐색 할 수있는 이점이 없습니다.

Subversion과 같은 체크 아웃/병합 소스 컨트롤을 사용하는 경우 디자이너가 XML을 통합하는 데 어려움을 겪고있는 정도까지 XML을 묶습니다. 이 경우 일반적으로 매번 전체 모델을 재생하거나 손으로 병합해야합니다.

다른 팁

관련 테이블에 엔티티 데이터 모델을 사용합니다. 데이터베이스의 크기에 따라 약 20 또는 25 테이블 미만인 경우 하나의 모델 만 생성합니다. 각 모델에는 EntityConnection 객체가 생성되기 때문에 모든 테이블의 개별 모델을 만드는 것은 약간 비싸다.

5 ~ 15 테이블이 있으면 모델을 상당히 잘 유지할 수 있습니다. 내 주요 결정 요인은 기능입니다. 나는 엔지니어링 애플리케이션을 구축하므로 예를 들어 약 6 개의 구조 강철 부품 테이블이 있습니다. 그들은 모두 하나의 모델에 있습니다. 일반적인 엔지니어링 속성을 공유하므로 해당 속성을 조작하는 데 관련된 코드를 더 쉽게 재사용 할 수 있습니다.

즉, 모델을 인스턴스화하고 객체를 만들고 공통 코드 파일 내에서 해당 객체를 조작/구성 할 수 있습니다. 데이터베이스로 돌아 가야하는 변경 사항은 매우 효율적으로 수행 할 수 있습니다.

결론은 기본 물체에 대한 필요와 사용 빈도를 결정하는 것입니다. 하나 또는 두 개의 테이블을 지속적으로 업데이트하려는 경우 해당 모델 내에 30 개의 다른 비 관련 테이블이있는 것은 의미가 없습니다. 소수의 테이블이 자주 사용되는이 시나리오에서는 이러한 객체의 컬렉션을 작성하고 컬렉션을 조작하며 데이터베이스를 적절한 시간에 업데이트하는 것이 합리적 일 수 있습니다.

메모리 maifulation은 디스크 I/O를 수행하기에 훨씬 저렴합니다. 이것은 단지 프레임 워크를 취하는 것이며 결코 전문가가 아닙니다.

전체 데이터베이스 또는 최소한 사용할 테이블을위한 것입니다 ...

많은 양의 테이블이 있다면 스키마 나 다른 범주 형 방법으로 나눌 수 있지만 아이디어는 테이블 당 데이터 모델이 아니라고 말할 것입니다 ...

데이터베이스 스키마와 독립적으로 데이터의 개념/객체 모델을 설계 한 다음 개념 모델을 데이터베이스 스키마와 가장 잘 관련시키는 매핑을 만듭니다. 모든 테이블이 아닌 경우 대부분을 사용할 수 있습니다. 테이블에 일대일 매핑을 원한다면 작업하기가 더 쉽기 때문에 LINQ-to-SQL을 고려할 수 있습니다.

위의 답변 외에도 EF 모델은 실제로 개념적 수준에 있음을 명심하십시오. 데이터베이스의 구조와 관련이 없을 필요는 없으며 전체 데이터베이스를 나타낼 필요는 없습니다.

큰 데이터베이스를 가지고 있다면 데이터베이스 테이블을 분류해야한다고 생각합니다. 그러나 ADO.NET 엔티티 프레임 워크의 주요 요구 사항 인 각 테이블에 대한 클래스를 만들어야합니다.

데이터베이스를 업데이트하면 업데이트 데이터 모델로 수행 할 수 있습니다.

먼저 데이터베이스를 디자인 한 다음 ado.net 엔티티 모델을 만듭니다.

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