Я новичок в NHibernate, и у меня возникают проблемы с отображением следующих отношений в этом классе.
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>();
}
}
Карты классов (хотя это практически догадки)
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();
}
}
Каждая категория может иметь родительскую категорию, некоторые категории имеют много подкатегорий и т. Д. И т. Д.
Я могу получить категорию для сохранения правильно (правильные подкатегории и родительская категория fk существуют в базе данных), но при загрузке она возвращает себя в качестве родительской категории.
Я использую Fluent для отображения классов, но если бы кто-то мог указать мне правильное направление для простого NHibernate, это также сработало бы.