将四个视图映射到一个类之后的NHibernate CreateQuery

时间:2014-08-25 12:06:12

标签: c# nhibernate mapping hql nhibernate-mapping

我有一个班级:

public class CASremind : ORMEntity
{
    public virtual int Id { get; set; }
    public virtual int FillerId { get; set; }
    public virtual DateTime Deadline { get; set; }
    public virtual string Email { get; set; }
}

我已将4个视图映射到此类:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   assembly="AppraisalOnlineGRLibrary"
                   namespace="AppraisalOnlineGRLibrary.Entities">

  <class name="AppraisalOnlineGRLibrary.Entities.CASremind" table="CASremind7" entity-name="CASremind7" lazy="false">
    <id name="Id" column="id"/>
    <property name="Deadline" column="deadline" />
    <property name="FillerId" column="usr_id"  />
    <property name="Email"          column="email" type="System.String" length="80" />
  </class>

  <class name="AppraisalOnlineGRLibrary.Entities.CASremind" table="CASremind2" entity-name="CASremind2" lazy="false">
    <id name="Id" column="id"/>
    <property name="Deadline" column="deadline" />
    <property name="FillerId" column="usr_id"  />
    <property name="Email"          column="email" type="System.String" length="80" />
  </class>

  <class name="AppraisalOnlineGRLibrary.Entities.CASremind" table="CASremindSuccess" entity-name="CASremindSuccess" lazy="false">
    <id name="Id" column="id"/>
    <property name="Deadline" column="deadline" />
    <property name="FillerId" column="usr_id"  />
    <property name="Email"          column="email" type="System.String" length="80" />
  </class>

  <class name="AppraisalOnlineGRLibrary.Entities.CASremind" table="CASremindFail" entity-name="CASremindFail" lazy="false">
    <id name="Id" column="id"/>
    <property name="Deadline" column="deadline" />
    <property name="FillerId" column="usr_id"  />
    <property name="Email"          column="email" type="System.String" length="80" />
  </class>
</hibernate-mapping>

直到这一部分,一切都运作良好。

现在是棘手的部分。

当我想执行时:

using (ISesion.BeginTransaction())
{
    CASesList7 = (List<CASremind>)ISesion.CreateQuery("FROM CASremind7").List<CASremind>();
    CASesList2 = (List<CASremind>)ISesion.CreateQuery("FROM CASremind2").List<CASremind>();
    CASesListS = (List<CASremind>)ISesion.CreateQuery("FROM CASremindSuccess").List<CASremind>();
    CASesListF = (List<CASremind>)ISesion.CreateQuery("FROM CASremindFail").List<CASremind>();
}

上述CreateQuery条中的每一条都会返回“CASremind7”的内容。图。

例如

CreateQuery('From CASremindFail') returns the same rows as CreateQuery('From CASremind7')

为什么CreateQuery方法只使用映射XML中的第一个类/实体名?

是否有其他方法来映射此视图,以便CreateQuery方法返回选定的视图内容而不是映射XML中第一个类/实体名称的内容?

提前感谢您的帮助:)

澄清一下,这就是我想要实现的目标:

我有4个观看次数。它们中的每一个都具有相同的列。他们之间唯一的区别是“&#39; WHERE&#39;中的参数。言。

我不想为这些视图创建4个具有相同主体的单独类。

我想在一个班级上映射这些观点。

之后我想从这些视图中获取行作为类列表。 (每个视图的类应该相同)

0 个答案:

没有答案