시나리오 : 나는 많은 어셈블리가있는 솔루션에서 일하고 있어요ORM 아키텍처 : 하나 또는 여러 개의 모델 (엔티티 프레임 워크)
. 주 조립품은 대형 EF 모델이있는 DAL 조립품을 참조합니다. 나 자신의 작은 EF 모델을 포함하는 DLL에서 일하고 있습니다. 두 모델 모두 동일한 데이터베이스에 연결됩니다. 현재 작업중인 DLL은 주 어셈블리로 데이터를 반환하지만 모델에서 엔티티를 반환 할 필요는 없습니다.
질문 :
는 자신의 작은 모델을 포함하거나 모두 동일한 큰 모델을 공유해야 각 서브 어셈블리에 대한 더 나은가요?
토론 : 나는 본체의 모델을 공유하는 경우
- 한편, 서브 - 어셈블리가 본체에 엔티티를 반환 할 수 있습니다.
- 반면에 하나의 큰 모델을 공유하면 각 어셈블리가 해당 모델에 연결됩니다. 이 모델을 변경하면 하위 어셈블리가 손상 될 수있는 가능성이 높아집니다. 하위 어셈블리 중 하나가 손상 될 우려가 있으므로 주 모델을 안전하게 변경하지 못할 수도 있습니다.
편집 : 레이 Vernagus이 모델 주위에 명확하게 정의 boundries를 설정하는 방법에 대한 몇 가지 좋은 점 (내 생각)을 가지고
. 이 아이디어와 같은 I 정말. 내 하위 어셈블리에 명확하게 정의 된 범위가 있으므로 하위 어셈블리에서 별도의 모델을 사용하여 이미이 작업을 수행하고 있습니다. 이것이 충분하나요?
모든 도메인 모델이 동일한 DAL 어셈블리에 있고 많은 엔터티가 동일한 테이블을 기반으로하고 동일한 이름을 가진 상황을 고려하십시오. 다른 이름의 네팔 스페이스에 있어야 할 필요가있는 것 외에는 나쁜 아이디어일까요?
첫 번째 단락의 경우 +1. 나는 네가하는 말을 이해하기 전에 두 번 째 단락을 여러 번 읽어야했다. ;-p –
책을 읽으십시오! 나는 확실히 그것을 할 수 없다. =) –
문제의 일부는 내가 원하는 것을 모른다는 것입니다 (그러므로 질문입니다). 내 상사는 모두가 사용하는 단일 DAL 어셈블리에서 하나의 거대한 모델을 원합니다. 모델을 개별 어셈블리에 포함하든 아니든 관계없이 더 작은 하위 모델로 모델을 분리하는 경향이 있습니다. 이 특별한 경우 하위 모델은 DAL 어셈블리가 아니고 대신 비즈니스 하위 어셈블리에 포함됩니다. –