2012-06-25 4 views
3

방금 ​​Entity Mappings (DTO < -> 엔티티)에 ValueInjecter를 사용하기 시작했습니다. Heres는 내 DTO :C# ValueInjecter : 전체 개체 매핑 그래프

public class IncidentDTO 
{ 
    int ID { get; set; } 
    string Name { get; set; } 
    AgencyDTO agencyDTO { get; set; } 
} 

public class AgencyDTO 
{ 
    int ID { get; set; } 
    string Name { get; set; } 
    List<IncidentTypeDTO> incidentTypeDTOList { get; set; } 
} 

public class IncidentTypeDTO 
{ 
    int ID { get; set; } 
    string TypeName { get; set; } 
} 

Heres는 내 NHibernate에 프록시 클래스 :

public class Incident 
{ 
    int ID { get; set; } 
    string Name { get; set; } 
    Agency agency { get; set; } 
} 

public class Agency 
{ 
    int ID { get; set; } 
    string Name { get; set; } 
} 

public class IncidentType 
{ 
    int ID { get; set; } 
    string TypeName { get; set; } 
} 

public class AgencyIncidentType 
{ 
    int ID { get; set; } 
    Agency agency { get; set; } 
    IncidentType incidentType { get; set; } 
} 

는 지금, 나는 저장소에서 IncidentDTO를 조회 할 필요가있다. 리포지토리 쿼리 Incident & AgencyIncidentType 테이블에서 데이터베이스 및지도 Incident ->IncidentDTO ValueInjecter를 사용하고 IncidentDTO을 반환합니다.

ValueInjecter를 사용하여 위의 매핑을 수행하는 가장 좋은 방법은 무엇입니까 ?? 내가 agencyagencyDTO 특성 이름을 바꾸는 게 좋을 것 Incident 인스턴스의 유지 및 (AN AgencyDTO까지) agency 특성에 Agency 객체를 매핑하는 동안 IncidentDTOIncident를 매핑 할 경우

감사합니다, Prateek

+1

http://prodinner.codeplex.com을 보면 valueinjecter 당신이하는 똑같은 일을 위해서, 그것도 설명하는 PDF가 있습니다 – Omu

+0

감사합니다 척! 정확히 내가 무엇을 찾고 있었는지,'IEnumerable' 타입을위한'ConventionInjection' 또한 .... @ Gloppy의 답변은 DeepPloning + IEnumerable'을위한 ConventionInjection을 가리켰다. 그래서 대답으로 표시하고있다. 그리고 물체 - 객체 매핑을 훨씬 쉽게하기위한 척.;) –

답변

4

IncidentDTO을 입력 한 다음 여기에 설명 된대로 Value Injector 설명서의 CloneInjection 샘플을 조정하십시오. omu.valueinjecter deep clone unlike types

+0

고마워! 한 곳에서 원했던 모든 것들 ..;) –