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

表が正しくデータベースに生成され、私はQueryExceptionNHibernate.QueryException ActiveRecordの

recivingてる

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

を実行しているときに、データは何の問題も

しかしなくてinstertedすることができます

`NHibernate.QueryException:できなかった プロパティを解決する: ParentCat egory.ParentCategoryId '

ご存知ですか?

答えて

1

カテゴリのParentCategoryプロパティを取得しています。これはカテゴリそのものです。 DetachedCriteriaは次のとおりです。

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

ありがとうございました。 – Tomislav