나는 엔티티 데이터 모델이
진정한 인프라 우려와 도메인 자체 사이
피하기 커플 링
진실하지 실제 도메인 모델로부터 분리되어야 함을 이해
CAN EF를 사용하여 도메인 모델을 직접 유지할 수 있지만 도메인 모델을 EF에 연결하면 안됩니다.
어떻게 생겼습니까?
의 당신이 그것을 당신의 모델이 Domain
라는 프로젝트, 지금 보통 EF 당신은 속성과 모든 종류를 사용합니다 (EF를 사용하여)는 상기 모델
을 유지하기 위해 당신의 저장소가있는 다른라는 DataStore
있다고 가정 해 봅시다 당신이 유지하기를 원하는 모델에 대해서는 말도 안되지만, &은 이러한 모델을 저장 메커니즘으로 EF에 연결합니다. &은 순수한 Domain
프로젝트의 EF에 의존성을 추가합니다. 이것은 우리가 피하려고하는 것입니다.
EF6을 구하고 EF6 FluentApi을 보면 Domain
프로젝트에 EF 특정 특성이나 종속성을 추가하지 않고도 EF와 함께 작동하도록 도메인 모델을 구성 할 수 있습니다.
기본 키?
modelBuilder.Entity<OfficeAssignment>().HasKey(t => t.InstructorID);
색인?
modelBuilder
.Entity<Department>()
.Property(t => t.Name)
.HasColumnAnnotation("Index", new IndexAnnotation(new IndexAttribute()));
지금이 당신이 할 수있는 그런
당신은 각각의 모든 개체에 대해이 작업을 수행 할 경우 신속하게 통증이 될 것입니다,하지만 당신은 몇 가지 규칙에 충실 경우 (또는 기본 유형을 사용이 더욱 쉬워을 만들기 위해) 리플렉션을 사용하여 도메인의 모든 엔티티에 대해 auto-magically
행운을 빌어 요.
생성자와 매개 변수를 전달하십시오. 그러나 EF는 이미 저장소 패턴과 작업 단위입니다. 왜 그런 이유로 다른 추상화가 필요합니까? 또한 코드를 먼저 사용하면 데이터 모델이 필요하지 않습니다. 데이터베이스를 도메인 모델에 매핑하면됩니다. –
@ L-Four 2 개의 다른 도메인 모델이 동일한 인프라 구조 테이블을 공유하거나 복잡한 속성 내에 복잡한 속성이 필요한 경우 어떻게해야합니까? – Robert
그런 다음 "엔티티 분할"과 같은 기술을 사용하십시오. 복잡한 속성 내에서 복잡한 속성이 무엇을 의미하는지 확신 할 수 없습니다. –