2010-07-23 4 views
0

전화 번호부의 연락처에 대한 이벤트 계획 애플리케이션을 작성 중입니다.다른 ID 유형을 사용하는 모든 유형 매핑

class Contact { 
    //... 
    Int32 Id { get; private set; } //primary key; 
    String Name { get; private set; } 
    //... 
} 

고객이 자신의 전화 번호부와 내 응용 프로그램의 하나 모두를 처리하기 위해 나에게 물었다 :처럼 모든 public virtualprotected 물건을 방지, 내 Contact 클래스 보인다. 그래서 나는 Contact에서 IContact 인터페이스를 추출하고 다른 인터페이스 인 InternalContact (이 이름은 아프다.)을 추가하여 동일한 인터페이스를 구현하려고 생각했습니다. 문제는 고객의 db가 할당 된 문자열을 기본 키로 사용하기 때문에 Contact의 ID 유형과 InternalContact의 ID 유형이 다를 것입니다. <any> 유형 매핑을 사용하여 Invitation.Contact 속성을 매핑 할 수 있습니까? Id 유형이 다른 경우에도 가능합니까? 사전에

감사합니다, 줄리오

답변

0

이 클래스를 만들 수는 요구하고 있지만, 이런 식으로 뭔가를 할 수있는 것입니다 확실하지 :

interface IContact<T> 
{ 
    T Id { get; } 
} 

public class Contact : IContact<int> 
{ 
    public int Id { get; private set; } 
} 

public class InternalContact : IContact<string> 
{ 
    public string Id { get; private set; } 
} 
+0

일반을? Uhm ... 재미있는 소리. ;-)하지만 가능합니까? 매핑 파일에 무엇을 써야합니까? 이 기술에 대한 예제에 대한 링크가 있습니까? 감사. – petrux

+0

예 가능합니다. 소개에 대한 링크는 다음과 같습니다. http://msdn.microsoft.com/en-us/library/ms379564(VS.80).aspx – spinon

+0

내 질문의 '핵심'을 얻지 못한 것 같습니다. 나는 generics가 무엇인지를 안다. 엔티티의 Id가 다른 타입 인 NHibernate로 polymorphic 매핑을 구현하는 법을 모른다. 아니면 뭔가 놓친 것일까 요? – petrux