Fluent / NHibernate Collections of the same class

Posted by Charlie Brown on Stack Overflow See other posts from Stack Overflow or by Charlie Brown
Published on 2010-03-16T20:11:27Z Indexed on 2010/03/17 8:51 UTC
Read the original article Hit count: 212

Filed under:
|
|

I am new to NHibernate and I am having trouble mapping the following relationships within this class.

public class Category : IAuditable
{
    public virtual int Id { get; set; }
    public virtual string Name{ get; set; }
    public virtual Category ParentCategory { get; set; }
    public virtual IList<Category> SubCategories { get; set; }

     public Category()
    {
        this.Name = string.Empty;
        this.SubCategories = new List<Category>();
    }

}

Class Maps (although, these are practically guesses)

public class CategoryMap : ClassMap<Category>
{
    public CategoryMap()
    {
        Id(x => x.Id);
        Map(x => x.Name);

        References(x => x.ParentCategory)
            .Nullable()
            .Not.LazyLoad();

        HasMany(x => x.SubCategories)
            .Cascade.All();

    }
}

Each Category may have a parent category, some Categories have many subCategories, etc, etc I can get the Category to Save correctly (correct subcategories and parent category fk exist in the database) but when loading, it returns itself as the parent category.

I am using Fluent for the class mapping, but if someone could point me in the right direction for just plain NHibernate that would work as well.

© Stack Overflow or respective owner

Related posts about fluent-nhibernate

Related posts about nhibernate