c# - Entity Framework 如何使用递归层次结构? Include() 似乎不适用于它

标签 c# visual-studio-2008 entity-framework

我有一个ItemItem 有一个 Category

CategoryIDNameParent child ParentChildren 也属于 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/

相关文章:

c# - 如何检查 DataTable 上的 IS NULL?

c# - 自定义 checkin 策略 : Access to filecontent from changeset files

c++ - Visual Studio 2008 的语法检查

c++ - Visual Studio强制在项目的所有编译单元中包含预编译头文件?

c# - 定期从 EF 中的多个线程更新实体

c# - Entity Framework 中的大规模增删多对多关系

c# - 如何编写与语言无关的 double.tryparse?

c# - 是否有一些正确的方法可以为 IEnumerable 模型字段添加模型错误以突出显示 View 中的特定输入但不是全部?

asp.net - 禁用 Visual Studio 的缓存

entity-framework - EF 4.1 RTM-EntityTypeConfiguration