这段代码代表了我问题的小规模:
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; }
}
当我在使用Entity Framework中的这个类时,它只会生成一个父子类别关系。我该如何告诉其语义上区分这些属性,并在SQL Server中生成两个不同的关系,一个用于获取所有子类别(递归自上而下的子级关系),另一个用于获取所有父类别(递归自下而上的父级关系)?像这样:
public virtual ICollection<Category> childCategories { get; set;}
public virtual ICollection<Category> parentCategories { get; set;}
我尝试使用modelBuilder,但是只能获取一层详细信息。
parentCategories
吗?如果是的话,这不是导航属性,而是遍历的结果或评估的一种形式。EF 无法帮助你,你需要编写自己的代码来创建这样的集合。 - Slauma