Как определить параметр Order с помощью таблицы ownTo в Castle ActiveRecord? - PullRequest
0 голосов
/ 28 июля 2010

Привет, ребята, посмотрите на следующую сущность:

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 - это BelongsTo, когда я пытаюсь указать его в параметре порядка, замок выдает исключение, которое не может найти свойство. Я делаю следующий код:

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);

Но в обоих случаях я получаю ошибку, кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 28 июля 2010

Используйте псевдоним:

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