2010-07-27 74 views
0

嗨,大家好採取以下實體看看:我怎樣才能在城堡的ActiveRecord定義順序參數通過屬於關聯表

Produto = Products (in english) 

[ActiveRecord("produtos", Lazy=true)] 
public partial class Produto : ActiveRecordBase<Produto>, IObjetoEntidade<Produto> 
{ 
    [PrimaryKey(PrimaryKeyType.Native, "prod_id")] 
    public virtual int Id { get; set; } 

    [StringLengthValidator(0, 100)] 
    [Property("prod_descricao")] 
    public virtual string Descricao { get; set; } 

    BelongsTo("prod_grupop_id", Lazy=FetchWhen.OnInvoke)] 
    public virtual GrupoProduto GrupoProduto { get; set; } 

的外觀,GrupoProduto是屬於關聯,當我試圖把它放在一個順序參數,castle會拋出一個無法找到屬性的異常。我做follwing代碼:

DetachedCriteria dc = DetachedCriteria.For<Produto>(); 
dc.SetFetchMode("GrupoProduto", NHibernate.FetchMode.Join); 

return SlicedFindAll(primeiroRegistro, quantidade, dc, new[] { Order.Asc("GrupoProduto.Nome")}); 

DetachedCriteria dc = DetachedCriteria.For<Produto>(); 
dc.SetFetchMode("GrupoProduto", NHibernate.FetchMode.Join); 
dc.AddOrder(Order.Asc("GrupoProduto.Nome"));     

return SlicedFindAll(primeiroRegistro, quantidade, dc); 

但在這兩種情況下,我收到錯誤,誰能幫助我?

回答

0

使用別名:

DetachedCriteria dc = ... 
dc.CreateAlias("GrupoProduto", "gp"); 
... 
...Order.Asc("gp.Nome") 
+0

太感謝你了,作品非常非常精細。 – Alexandre 2010-07-29 03:52:45