我有一个Item
。 Item
有一个 Category
。
Category
有 ID
、Name
、Parent
和 child
。 Parent
和 Children
也属于 Category
。
当我对特定的 Item
执行 LINQ to Entities 查询时,它不会返回相关的 Category
,除非我使用 Include("Category ")
方法。但它并没有带来完整的类别,包括它的 parent 和 child 。我可以做 Include("Category.Parent")
,但这个对象有点像树,我有一个递归层次结构,但我不知道它在哪里结束。
如何让 EF 完全加载 Category
,包含父项和子项,以及父项及其父项和子项,等等?
这不是针对整个应用程序的,出于性能方面的考虑,仅此特定实体(类别)需要它。
最佳答案
您可以使用 Load
而不是使用 Include
方法。
然后你可以为每个做一个循环遍历所有的 child ,加载他们的 child 。然后通过他们的 child 为每个人做一个,依此类推。
您向下的关卡数量将硬编码在您拥有的每个循环的数量中。
这里是一个使用Load
的例子:http://msdn.microsoft.com/en-us/library/bb896249.aspx
关于c# - Entity Framework 如何使用递归层次结构? Include() 似乎不适用于它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1308158/