내가 도메인 모델과 데이터 모델이 있습니다도메인 모델 매핑
- 도메인 모델 (DOM) 비즈니스 계층이 작업을 단순화하기 위해 설계를.
- 데이터 모델 (DaM)은 엔티티 프레임 워크를 사용하여 데이터베이스에서 자동으로 생성됩니다.
DoM <> 양방향으로 DaM을 매핑하고 싶습니다. 내가 Automapper을 시도,하지만 난 그것으로 하나의 큰 문제가 발생하고, 댐 데이터 모델
Car
{
Type {get; set;}
MaxSpeed {get; set;}
}
도메인 모델 DOM이 다음과 같은 구조 데이터베이스 테이블의 직접적인 번역 인 엔티티 자동차를 가지고 말 :
Car
{
MaxSpeed {get; set;}
}
SportsCar : Car
{
}
F1 : SportsCar
{
}
그리고 매핑해야합니다 :
if (DaM.Car(car).Type == Type.SportsCar)
DaM.Car.MaxSpeed > 350 ? map DaM.car to DoM.F1 : map DaM.car to DoM.SportsCar
것을 보관하는 가장 좋은 방법/도구는 무엇입니까?
나는 automapper 또는 valueinject로 어떻게 할 수 있습니까?
속성의 값에 따라 특정 유형에 매핑 할 수 없으며 이와 같이 데이터를 모델링해서는 안됩니다. 특성 값을 변경하면 오브젝트 유형을 변경해서는 안됩니다. –
우리는 몇 가지 디자인을 고려해 봤습니다. 코드에 클래스 계층 구조가 있고 표준화 된 SQL 데이터 스키마가 있어야합니다. SQL에서 우리가 원하는 것을 수행하는 가장 간단한 방법은 타입 컬럼 (실제로는 하나의 컬럼보다 더 복잡합니다. 컬럼의 조합 + 참조 오브젝트의 유형)입니다. 매핑은 정적입니다. 즉, 데이터가 DaM에서 DoM으로 매핑 된 후에는 단순하거나 버려지고 새로 매핑 된 매핑 될 때까지 자체적으로 살아갑니다. – BanditoBunny
discriminator 열/속성을 사용하여 올바른 파생 형식을 선택하는 EF에서 계층 당 상속 테이블을 사용하려고합니다. 그런 다음 앞뒤로 매핑 할 각 도메인 모델에 적합한 EF 모델을 갖게됩니다. http://msdn.microsoft.com/en-gb/data/jj618292.aspx –