할 수 있는 방법 지도 목록의 문자열을 내 엔터티를 사용하여 NHibernate?
-
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>
매핑을 사용합니다.
제휴하지 않습니다 StackOverflow