Я пишу приложение, которое интенсивно использует вложенные списки объектов, и я изо всех сил пытаюсь найти способ получить подсписки, которыми я доволен.
Я довольно новичок в асинхронном программировании и хотел бы сделать что-то вроде следующего, но я не могу придумать способ, не разбив его на два отдельных вызова.Необходимость получить все промежуточные результаты только для того, чтобы отфильтровать их до того, что я хочу после факта, не кажется такой уж эффективной.
baseObj
{
string ID;
string name;
List<subObj> subObjList
{
string ID;
string desc;
bool deleted;
};
}
Я знаю, что это не работает, но я чувствую, что это что-то маленькое, что я могу изменить, чтобы заставить его работать, но я не знаю, с чего начать.
List<subObj> = await collection.AsQueryable().Where(w=> w.ID == "id").Select(s => s.subObjList.Where(w => w.deleted == false).ToList()).FirstAsync();
Это работает, но я думаю, что это можно сделать более эффективно
baseObj obj = await collection.AsQueryable().Where(w=> w.ID == "id").firstAsync();
List<subObj> sObjList = obj.subObjList.Where(w => w.deleted == false).ToList();
Есть ли способ выбрать подсписок всего за один запрос или это просто невозможно?