Я пытаюсь определить наиболее эффективный способ выполнения следующего запроса с помощью Entity Frameworks (с использованием 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 этот сценарий, который не требует многочисленных отдельных запросов. Я хотел бы услышать некоторые советы о том, как другие люди могут подойти к этому.