У меня есть DTO с 40 + свойствами. Но для заполнения всех свойств мне нужно выполнить 4 отдельных запроса. Мой первый запрос связан с получением базовой информации. Для каждой возвращаемой строки я запускаю еще 3 запроса на основе идентификатора, указанного в основном запросе (проблема N + 1). Я могу настроить загрузку, но затем загружаю тысячи объектов, которые мне не нужны.Заполнение DTO из нескольких запросов
Должен ли я разделить мой DTO и создать отдельный DTO для каждого запроса, который я запускаю, тогда ссылка затем связать их все вместе в центральный DTO по id?
Я предвидел окончательный 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 не поддерживает множественные критерии. Обратите внимание, что я присоединяюсь к большинству своих данных. Проблема возникает, когда мне нужно запрашивать данные с полным набором критериев.
К сожалению, я не могу создать представление потому что база данных доступна только для чтения. :( – Mike
Это нормально, вы (или, возможно, скорее, администратор базы данных) можете создать представление в другой схеме, которая выбирает (считывает) данные из этих таблиц. –
Нет костей. Нам не разрешено создавать что-либо в этой базе данных, независимо от схемы. – Mike