2010-07-27 13 views
0

Salut un coup d'oeil dans l'entité suivante:Comment puis-je définir un paramètre d'ordre à travers une table belongsTo dans les gars Castle 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; } 

Regardez que GrupoProduto est un Appartient, lorsque je tente de le mettre dans un ordre paramètre, château jeter une exception qui ne peut pas trouver la propriété. Je fais le code follwing:

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

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

ou

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

return SlicedFindAll(primeiroRegistro, quantidade, dc); 

Mais dans les deux cas, je reçois l'erreur, quelqu'un peut me aider?

Répondre

0

Utilisez un alias:

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

Merci beaucoup, fonctionne très très bien. – Alexandre