2009-09-24 2 views
2

두 개의 C# 클래스, ContainerItem 말하고 단방향 연결 :NHibernate 목록 키 열의 SQL 색인?

class Container { 
    [...] 
    public IList<Item> Items {get;set;} 
} 

NHibernate 매핑은 다음과 같습니다 :

<class name="Container"> 
    [...] 
    <list name="Items" cascade="all-delete-orphan"> 
    <key column="ContainerId"/> 
    <index column="Position"/> 
    <one-to-many class="Item"/> 
    </list> 
</class> 

결과적으로 NHibernate (2.0.1) Item 테이블의 ContainerId 열. 보통 Container 쪽에서이 연결을 탐색하기 때문에 ContainerId 열에 SQL 인덱스를 배치하려고합니다. NHibernate는 이것에 대한 매핑 구문을 제공하지 않는 것처럼 보입니다. 적어도 NHibernate는 분명하지 않습니다. 이것을 가속화하는 가장 좋은 방법은 무엇입니까?

여러 곳에 분산시켜야하는 것을 피하기 위해 매핑 문서 만 변경하는 것이 좋습니다. NHibernate 문법에서 이것을하는 방법이 있습니까? 사용자 지정 SQL 명령을 포함해야합니까? 그렇다면 어떻게?

답변

2

<database-object> 매핑을 살펴보십시오. 스키마 작성 프로세스의 일부로 임의의 색인, 트리거 등을 작성할 수 있습니다. 사용법은 this article에 설명되어 있습니다. 이 변경되었지만 때 그것을 사용하여 수행 할 수 있는지 모르겠어요

0

<index> 
    <column name="Position" index="Positionindex" /> 
</index>