Получить иерархичный объект из SQL

237
13 августа 2017, 04:26

Как получить объект из SQL вида:

public class RootObject
{
    public Guid qid { get; set; }
    public string qtitle { get; set; }
    public Group[] groups { get; set; }
}
public class Group
{
    public int gid { get; set; }
    public string gtitle { get; set; }
    public Answer[] answers { get; set; }
}
public class Answer
{
    public int aid { get; set; }
    public string atitle { get; set; }
}

Пытаюсь так:

WITH Recursive (Id, ParentId, Title, DocumentId)
AS
(
    SELECT Id, ParentId, Title, DocumentId
    FROM dbo.doc_MarketingTemplate t
    WHERE t.DocumentId='2A973C7F-3B28-47F3-98C9-6E921CDD1CF0' 
    UNION ALL
    SELECT t.Id, t.ParentId, t.Title, t.DocumentId
    FROM dbo.doc_MarketingTemplate t
        JOIN Recursive r ON t.ParentId = r.Id
)
SELECT Id, ParentId, Title, DocumentId
FROM Recursive r
Answer 1

Можно получить xml от скуль-сервера, соответствующий вашей структуре, используя FOR XML и PATH , вот так - https://msdn.microsoft.com/ru-ru/library/bb510462(v=sql.120).aspx А на клиенте десериализовать в вашу модель любым XML-сериализатором. Но вообще вам правильно сказали - наполняйте модели последовательными селектами - для RootObject, Group и Answer стройте свои мапперы

READ ALSO
Изменение стилей в Xamarin

Изменение стилей в Xamarin

Здравствуйте, хотелось бы узнать, как можно в Camarin, не Shared проекте изменить xaml стиль отдельно для Android, чтобы эти изменения не отображались...

210
Ежедневный запуск программы

Ежедневный запуск программы

Есть приложение написанное на c# в visual studioКаждый день я его запускаю в ручную в определенное время

232
Библиотека для работы с shockwave flash (.swf) файлами - C#, WPF

Библиотека для работы с shockwave flash (.swf) файлами - C#, WPF

Добрый день! Пришлось работать сswf файлами

243
Ошибка при установке .Net core на Elementary os [требует правки]

Ошибка при установке .Net core на Elementary os [требует правки]

При попытке установкиNet Core для Visual Studio Code вылетала ошибка

278