我嘗試使用Fluent Nhibernate在單個表中創建一棵樹。表必須是這樣的:在一個表中映射「多對多」的例外情況。在類Y中找不到屬性和字段X
模型類:
public class Category
{
public virtual int CategoryId { get; set; }
public virtual string CategoryName { get; set; }
public virtual Category ParentCategory { get; set; }
public virtual IList<Category> ChildCategory { get; } = new List<Category>();
}
映射類:
public class CategoryMap : ClassMap<Category>
{
public CategoryMap()
{
Id(x => x.CategoryId).GeneratedBy.Increment();
Map(x => x.CategoryName).Not.Nullable();
References(x => x.ParentCategory).Column("ParentCategoryId").Access.CamelCaseField();
HasMany(x => x.ChildCategory)
.Cascade.AllDeleteOrphan()
.AsSet()
.KeyColumn("CategoryId")
.Access.CamelCaseField();
}
}
ORM返回以下異常:
NHibernate.PropertyNotFoundException:找不到屬性也沒有 字段'childCategory'類'MyProj.Models.Category'
我只學NH。我做錯了什麼?
謝謝你的回答。我修復'Category'類並得到另一個異常'NHibernate.PropertyNotFoundException:在'MyProj.Models.Category'類中找不到屬性或字段'parentCategory'' – Seva
@Seva,從'ParentCategory中移除'.Access.CamelCaseField()'' '映射。沒有必要使用該屬性時有一個setter。 –