代码代表我的问题的小规模:自引用实体框架
public class Category
{
public Guid CategoryID { get; set; }
public string Name { get; set; }
public Guid? ParentID { get; set; }
public bool IsTop { get; set; }
public string Description { get; set; }
public virtual Category parentCategory { get; set; }
}
当我在实体框架使用这个类,它产生只有一个父和子类别的关系。
我该如何判断语义上分离的属性,并在SQL Server中生成两个不同的关系:一个用于获取所有子类别(子关系的子对象(递归自上而下)),另一个用于获取所有父类别(父母的父母(递归自下而上))?这样的事情:
public virtual ICollection<Category> childCategories { get; set;}
public virtual ICollection<Category> parentCategories { get; set;}
我试着用modelBuilder,但从那里我只能得到一个细节层次。
您是否有多个父母或每个类别?我也不明白你想要什么。你想要一个集合'parentCategories',它包含树中的所有类别到根?如果是的话,这将不是导航属性,而是某种评估或遍历的结果。 EF不会帮助你,你必须编写你自己的代码来创建这样一个集合。 – Slauma
是的。我想要类似的东西,它给我所有的孩子类别在树上,并以相同的方式,所有的父类别树... 和是的,我意识到EF不会在这种情况下帮助,所以我做了一些递归循环的IEnmuerable它对我有用.. 感谢您的支持 –