如何在实体框架中处理此层次结构

Posted

技术标签:

【中文标题】如何在实体框架中处理此层次结构【英文标题】:How to handle this hierarchy in Entity Framework 【发布时间】:2013-04-16 23:48:32 【问题描述】:

我有一种特殊的数据模型必须使用闭包表,因为几乎每个 material_composite 都是它自己树的根,但也可以在任何其他 material_composite 的树的层次结构中:

我正在使用 SQL Server、Entity Framework 5 和 WPF,这里有两个主要用例:

1) 浏览整个树

2) 浏览/修改单个 material_composite 的树。

我可以使用 SQL Server 的 FOR XML 返回整个树,但是每当我想查看层次结构中特定节点的详细信息/关系时,我都会在 db 上来回做很多事情。我更愿意使用 POCO 实体中的实际属性。

对于如何使用实体框架从闭包表中获取任意深度的层次结构到应用程序中,是否有人有任何具体建议?

【问题讨论】:

我对 EF 的了解还不够,但是,直接使用 FLWR 表达式编写 SQL 查询怎么样? 【参考方案1】:

我是 oracle,我可能会通过事先查询使用某种连接来获取您需要的信息。我认为您现在可以使用 CTE 在 sqlserver 中做类似的事情

http://technet.microsoft.com/en-us/library/ms186243(v=sql.105).aspx

【讨论】:

以上是关于如何在实体框架中处理此层次结构的主要内容,如果未能解决你的问题,请参考以下文章

EF:使用typeid映射实体框架层次结构

Core Data 实体关系层次结构

如何在使用 TPT 层次结构时首先在 EF 代码中实现并发

如何在从 .Include 实体框架查询返回的数据上指定 where 子句?

如何在插件中访问 Maven 的依赖层次结构

实体框架生成单独的类