【问题标题】:Make Projection on discriminator-value对鉴别器值进行投影
【发布时间】:2014-11-28 07:40:14
【问题描述】:

我有这个 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 中的任何属性一样获得鉴别器值的投影? 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
      ...
  }
...

【问题讨论】:

    标签: c# nhibernate projection nhibernate-projections


    【解决方案1】:

    应该是这样的"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}
    ....
    

    【讨论】:

    • 如果有帮助的话!伟大的先生 ;) 享受惊人的 NHibernate ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 2018-08-22
    • 2013-06-16
    • 1970-01-01
    • 2022-01-16
    相关资源
    最近更新 更多