2
클래스 당 테이블을 사용하여 NHibernate에서 매핑 한 상속 계층 구조가 있습니다. 내 mappping 파일은 아래에있는 것과 같습니다 (많은 속성이 생략되었습니다). 상속 : 엔티티 유형 및 하위 클래스 속성에 대한 기준
내가 사용자의 필터 입력을 기반으로 메시지에 대한 동적 DetachedCriteria를 구축하고,이 계층 구조를 조회합니다. 계층 구조의 모든 유형의 메시지는 하나의 목록에서 사용자에게 반환되어야합니다.- 메시지의 유형에 따라 기준을 작성하고 싶습니다. 사용자는 SMSMessage 또는 EmailMessageReceivedDate> '2009-01-01'의 모든 메시지를 가져올 수 있습니다. 내가 어떻게 그 일을하려고 할까?
- 동일한 쿼리에서 사용자는 메시지가 내부 메시지 인 경우 우선 순위가 = 2가되어야 함을 지정할 수 있습니다. 이러한 특정 조건부 조건을 어떻게 지정합니까?
이 모든 것이 LINQ에서 가능하기 때문에 NHibernate에서도이 작업을 수행 할 수 있기를 기대합니다.
<class name="Message" table="Message" abstract="true" discriminator-value="null">
<id name="MessageId">
<generator class="identity" />
</id>
<discriminator column="Type" type="byte" />
<property name="ParentId" />
<property name="ReceivedDate" />
...
<subclass name="SMSMessage" discriminator-value="0">
<property name="Text" column="Text" />
...
</subclass>
<subclass name="MMSMessage" discriminator-value="1">
<property name="Subject" />
...
</subclass>
<subclass name="EmailMessage" discriminator-value="2">
<property name="BodyPlainText" />
...
</subclass>
<subclass name="InternalMessage" discriminator-value="4">
<property name="Priority" />
...
</subclass>
</class>