Fluent / NHibernate Collections of the same class
- by Charlie Brown
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.