查询分层数据的建议

时间:2011-12-04 20:32:58

标签: c# sql-server entity-framework

我正在尝试确定使用实体框架(使用C#,ASP.NET MVC和SQL Server)执行以下查询的最有效方法。

我有一个分层的位置表。 ParentLocationID列引用父位置。例如,美国可能是犹他州的父母所在地。

[Locations]
ID int
Title nvarchar(100)
ParentLocationID int

然后我有一个活动表,并提到相应的位置。

[Activities]
ID int
Title nvarchar(100)
LocationID int

我想要执行的查询是查找给定位置的所有活动,包括该位置的“子位置”的所有活动。 (例如,如果位置是美国,我应该包括美国,犹他州,盐湖城,加利福尼亚等的所有活动。)

单独使用C#,我会编写一个递归方法来实现它。但我想知道EF或SQL Server是否为这种不需要大量单独查询的场景提供支持。我很想听听其他人如何处理这个问题的一些提示。

1 个答案:

答案 0 :(得分:2)

使用公用表格表达式( CTE ):

http://msdn.microsoft.com/en-us/library/ms190766.aspx