할 수 있는 방법 지도 목록의 문자열을 내 엔터티를 사용하여 NHibernate?

StackOverflow https://stackoverflow.com/questions/49220

  •  09-06-2019
  •  | 
  •  

문제

나는 두 테이블에서 데이터베이스 내:및 태그 기사

태그 테이블의 구성 ArticleID(외국 key)태그(varchar).

지금 나는 필요하지도는 기사를 태그는 읽기 전용 컬렉션에서 문서 엔터티를 사용하거나 명령 태그 또는 readonlycollection 을 태그가 있습니다.

나 상담 NHibernate 참조 자료,하지만 할 수 없을 것 같은 그림 설정을 사용하는 때,가방 및 다른 Nhibernate 컬렉션이 있습니다.본 사용하여 예 ISet 컬렉션,하지만 정말 좋아하지 않아하는 넥타이 내 엔터티 클래스를 NHibernate 유형입니다.

어떻게 할 수 있습니 매핑에서 NHibernate?

편집:나는 끝까지 사용 <bag> 대신,그것을 필요로하지 않는 인덱스:

<bag name="Tags" table="Tag" access="nosetter.camelcase" lazy="false">
  <key column="ArticleId" />
  <element column="Tag" type="System.String" />
</bag>
도움이 되었습니까?

해결책

유형의 컬렉션을 사용하여 매핑에 따라 달라집에서 당신이 원하는 방법을 나타내는 컬렉션 코드입니다.설정지도 이렇게:

  • <list> 맵에 직접 명령.
  • <map> 맵에 직접 IDictionary.
  • <bag> 지도는 명령.하지 않습니다 완전히 준수 으로 명령 인터페이스이기 때문에 추가()메소드는 보장하지 않습 반환이 올바른 인덱스입니다.체 추가될 수 있는 <bag> 없 초기화하는 명령.을 확인하십시 숨기거나 명령에 소비자의 API 또는 잘 설명되어 있습니다.
  • <set> 지도를 Iesi.컬렉션이 있습니다.ISet.그 인터페이스의 일부입 Iesi.컬렉션 어셈블리 와 함께 배포되 NHibernate.

그래서 만약 당신이 원하는 명령을 반환,다음 사용 <list> 매핑을 사용합니다.귀하의 경우에,나는 아마 지도를 사용하는 <list> 매핑을 사용합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top