Построить иерархию JSON из структурированных данных

C # | .NET 4.5 | Entity Framework 5

У меня есть данные, возвращаемые из запроса SQL в виде идентификатора, ParentID, имени. Я'Я хотел бы взять эти данные и проанализировать их в иерархическую строку JSON. Пока что это кажется гораздо более сложной задачей, чем должно быть. Так как я'Используя Entity, данные возвращаются мне как IEnumerable. Теперь я верю, что мне нужна какая-то форма рекурсии, но яЯ не совсем уверен, с чего начать. Любая помощь приветствуется.

Данные возвращаются как

id   parentId    name
1    1           TopLoc
2    1           Loc1
3    1           Loc2
4    2           Loc1A

Код

public static string GetJsonLocationHierarchy(long locationID)
{
    using (EntitiesSettings context = new EntitiesSettings())
    {
        // IEnumerable of ID,ParentID,Name
        context.GetLocationHierarchy(locationID);
    }
}

Конечный результат яНадеюсь, будет что-то вроде этого:

{
    "id": "1",
    "parentId": "1",
    "name": "TopLoc",
    "children": [
        {
            "id": "2",
            "parentId": "1",
            "name": "Loc1",
            "children": [
                {
                    "id": "4",
                    "parentId": "2",
                    "name": "Loc1A",
                    "children": [
                        {}
                    ]
                }
            ]
        },
        {
            "id": "3",
            "parentId": "1",
            "name": "Loc2",
            "children": [
                {}
            ]
        }
    ]
}

Ответы на вопрос(1)

Ваш ответ на вопрос