2010-11-28 10 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; } 
    }  
} 

Tabelle in der Datenbank korrekt generiert und Daten können ohne ProblemeNHibernate.QueryException Active

Aber insterted werden, wenn ich renne

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

Ich reciving QueryException

`NHibernate.QueryException: konnte nicht resolve Eigenschaft: ParentCat egory.ParentCategoryId '

Irgendeine Idee?

Antwort

1

Sie rufen die ParentCategory-Eigenschaft einer Kategorie ab, die selbst eine Kategorie ist. Ihr DetachedCriteria sollte sein:

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

Danke das war es :) – Tomislav