对鉴别器价值进行预测

时间:2014-11-28 07:40:15

标签: c# nhibernate projection nhibernate-projections

我有这个NHibernate映射

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  <class name="ParentClass" table="myclass" abstract="true" >
    ...
    <discriminator column="mytype" type="string" />
    ...
    <subclass name="SubClass1" discriminator-value="Type1" />
    <subclass name="SubClass2" discriminator-value="Type2" />
  </class>
</hibernate-mapping>

那么当我过滤ParentClass对象时,如何获得像DAO中的任何属性一样的Projection of discriminator-value? DAO中的代码:

...
  using (ISession session = NHibernateSession)
  {
      ICriteria criteria = session.CreateCriteria<ParentClass>("p")
      ...
      criteria.SetProjection(Projections.ProjectionList()
          .Projections.Property("p.Property1")
          .Projections.???  // something to get discriminator-value from myclass.mytype column
      ...
  }
...

1 个答案:

答案 0 :(得分:3)

这应该是 "p.class"

的方式
criteria.SetProjection(Projections.ProjectionList()
    .Add(Projections.Property("p.Property1"))
    .Add(Projections.Property("p.class"))
    );

17.1.4.1. Alias and property references

Description                 Syntax               Example
...
Discriminator of an entity  {[aliasname].class}  DISC as {item.class}
....
相关问题