2010-11-28 36 views
0
[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; } 
    }  
} 

Le tableau est correctement générée dans la base de données et les données peuvent être insterted sans aucun problèmeNHibernate.QueryException ActiveRecord

Mais quand je suis en

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

Je reciving QueryException

`NHibernate.QueryException: impossible de de résoudre la propriété: ParentCat egory.ParentCategoryId '

Une idée?

Répondre

1

Vous récupérez la propriété ParentCategory d'une catégorie, qui est elle-même une catégorie. Votre DetachedCriteria devrait être:

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

Merci c'était bien :) – Tomislav