0
我想根據anested對象的屬性排序我的數據。Nhibernate按嵌套對象屬性排序
這是主類 「公告」:
[Serializable]
public class Bulletin
{
public virtual Int32 BulletinID { get; set; }
public virtual Int32 AgentID { get; set; }
public virtual Recipient Recipient
{
get
{
var rm = new CRecipientManager();
var rec = rm.GetById(1);
return rec;
}
}
public virtual DateTime? DateSent { get; set; }
public virtual DateTime DateEntry { get; set; }
}
的hbm.xml文件中:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="Sfa.Engine.domain.Bulletin,Sfa.Engine" table="Bulletins" lazy="true">
<id name="BulletinID" column="BulletinID">
<generator class="native" />
</id>
<property name="AgentID" column="AgentID" type="Int32" not-null="true" />
<property name="DateSent" column="DateSent" type="datetime" not-null="false" />
<property name="DateEntry" column="DateEntry" type="datetime" not-null="true" />
</class>
</hibernate-mapping>
這是第二個 「收件人」:
public class Recipient
{
public virtual Int32 RecipientID { get; set; }
public virtual String Prefix { get; set; }
public virtual String Firstname { get; set; }
public virtual String Lastname { get; set; }
public virtual String Email { get; set; }
public virtual DateTime DateEntry { get; set; }
}
我的經理代碼:
public ICollection<Bulletin> GetAll()
{
using (ISession session = NHibernateHelper.OpenSession())
{
var bulletins = session
.CreateCriteria(typeof(Bulletin))
.AddOrder(Order.Asc("BulletinID"))
.CreateAlias("Recipient", "rec").AddOrder(Order.Asc("rec.Firstname"))
.List<Bulletin>();
return bulletins;
}
}
我創建的類收件人的別名和使用的名字作爲排序標準,但NHibernate的給我這個: 無法解析屬性:收件人的:Sfa.Engine.domain.Bulletin
收件人屬性格式Bulletin對象的訪問是公開的,什麼是錯的?
其實, 「公報」,沒有項目參照對象收件人。這可能是正常的嗎?或者我必須將關係映射爲一對一? – Ras