Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对鉴别器值进行投影_C#_Nhibernate_Projection_Nhibernate Projections - Fatal编程技术网

C# 对鉴别器值进行投影

C# 对鉴别器值进行投影,c#,nhibernate,projection,nhibernate-projections,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="SubClas

我有一张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>

...
...
那个么,在过滤父类对象时,如何像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
      ...
  }
...
。。。
使用(ISession会话=NHibernateSession)
{
ICriteria标准=session.CreateCriteria(“p”)
...
criteria.SetProjection(Projections.ProjectionList()的标准)
.物业(“p.物业1”)
.Projections.???//从myclass.mytype列获取鉴别器值的内容
...
}
...

这应该是“p.class”的方式

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


这应该是“p.class”的方式

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

如果这有帮助的话!伟大的先生;)享受令人惊叹的NHibernate;)如果有帮助的话!伟大的先生;)享受令人惊叹的NHibernate;)