我写的是大量使用嵌套的对象列表中的应用程序,我在努力寻找一种方法来检索我很高兴与子表。
我是相当新的异步编程,很想做一些像下面,但我似乎无法想出一个办法,而不把它分成两个单独的呼叫。拥有让所有只有子结果将它们过滤到我想要的东西的事实后,似乎并没有全部有效。
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();
有没有办法在短短一个查询,选择子列表,或者是不可能的。
是啊,只要使用的的SelectMany而不是选择:
List<subObj> sObjList = collection.AsQueryable()
.Where(w=> w.ID =="id")
.SelectMany(x => x.subObjList)
.Where(w => w.deleted == false)
.ToList();