Заполнение DTO из нескольких запросов

У меня есть DTO с более чем 40 свойствами. Но для заполнения всех свойств мне нужно выполнить 4 отдельных запроса. Мой первый запрос связан с получением базовой информации. Для каждой возвращенной строки я запускаю еще 3 запроса на основе идентификатора, указанного в основном запросе (проблема N + 1). Я могу настроить безотлагательную загрузку, но затем я загружаю тысячи объектов, которые мне не нужны.

Должен ли я разделить свой DTO и создать отдельный DTO для каждого запроса, который я выполняю, затем связать, а затем связать их все вместе в центральный DTO по идентификатору?

Я представлял себе окончательный DTO, подобный этому.

public class FooDto
{
    public string Foo { get; set; }
    public string Bar { get; set; }
    public FirstDto FirstQueryResults { get; set; }
    public SecondDto SecondQueryResults { get; set; }
    public ThirdDto ThirdQueryResults { get; set; }
}

Существует лучший способ решить это? Я использую Oracle, а NHibernate не поддерживает множественные критерии. Обратите внимание, что я присоединяю большинство своих данных. Проблема возникает, когда мне нужно запросить данные с полностью новым набором критериев.

1
задан Mike 14 October 2010 в 17:17
поделиться