Linq: return List contained List
本文关键字:List contained return Linq | 更新日期: 2023-09-27 17:59:36
我有一个类:
public class BigClass
{
public int Id { get; set; }
public string Name { get; set; }
...
public List<LittleClass> LittleClassList { get; set; }
}
是否可以在一个请求中将其实例列表返回给数据库?这种方法调用了许多对数据库的请求:
List<BigClass> data = context.Table1_Name ...
foreach(var item in data)
{
item.LittleClassList = context.Table2_Name ...
}
首选Lambda语法。非常感谢。
from big in context.TableA
from little in big.LittleClassList
select little;
和扩展格式
Context.TableA.Where(...).SelectMany(x=>x.LittleClassList);
List<LittleClass> littleClassesOfListBigClasses = new List<LittleClass>();
context.BigClass.ToList().ForEach(e=>littleClassesOfListBigClasses.AddRange(e.LittleClassList));
特别适用于Dave A
我认为OP想要什么:他想通过一个lambda表达式获取存储在db中的所有LittleClass
es。
关于我的代码如何工作的解释:
1) 我使用EF(实体框架)。如果你不知道它是什么,你可以阅读信息在这里在这个问题中,我看到OP知道什么是EF以及如何使用它,所以我觉得没有必要解释。2) 我从数据库中获取表BigClass
中的所有数据,并将其作为List(在1个查询中)3) 我使用ForEach(来自Linq)浏览返回的BigClass
列表,并将所有LittleClass
es添加到littleClassesOfListBigClasses
还需要注意的是,您可以将Where
添加到ToList
之前,以获得存储在BigClass
表中的所有数据,而只是一部分数据,它看起来像这样:
context.BigClass.Where(some lambda-expression).ToList()
所以我的答案现在很清楚了?