ネスティングされたオブジェクトのプロパティに基づいてデータをソートする必要があります。ネストされたオブジェクトのプロパティによるNhibernateの順序
これは、メインクラス "速報" です:
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; }
}
:これは二番目の "受信者" である
<?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>
:
[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ファイル私のマネージャーコード:
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
受信者のpropery掲示物のアクセス可能で公開されている、何が間違っていますか?
を参照してください、 "掲示板"、オブジェクトの受信者を参照するアイテムがありません。これは普通でしょうか?関係を1対1でマッピングする必要がありますか? – Ras