NHibernate.QueryException ActiveRecord - PullRequest
       6

NHibernate.QueryException ActiveRecord

0 голосов
/ 28 ноября 2010
   [ActiveRecord]   
    public class Category
   {
    private int _id;
    private string _name;
    private Category _category;

    [PrimaryKey(PrimaryKeyType.HiLo, "id", Params = "max_lo=9")]
    public long Id
    {
        get { return _id; }
        protected internal set { _id = value; }
    }
    [Property]
    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }
    [BelongsTo("ParentCategoryId")]
    public Category ParentCategory
    {
        get { return _category;}
        set { _category = value; }
    }       
}

Таблица правильно сгенерирована в базе данных, и данные могут быть вставлены без проблем

Но когда я бегу

        var criteria = DetachedCriteria.For<Category>
            .Add(Restrictions.Eq("ParentCategory.ParentCategoryId", testCategory.id));           
        Assert.That(m_repository.FindAll(criteria).Length, Is.EqualTo(1));

Я получаю QueryException

`NHibernate.QueryException: не удалось разрешить свойство: ParentCategory.ParentCategoryId '

Есть идеи?

1 Ответ

1 голос
/ 28 ноября 2010

Вы извлекаете свойство ParentCategory для категории, которая сама является категорией.Ваш DetachedCriteria должен быть:

   var criteria = DetachedCriteria.For<Category>()
                                  .Add(Restrictions.Eq("ParentCategory.Id",
                                                       testCategory.id)); 
...