2013-02-15 82 views
-2

我有一个类:的Linq:返回列表中包含列表

public class BigClass 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    ... 
    public List<LittleClass> LittleClassList { get; set; } 
} 

是否有可能在一个请求数据库返回其实例的名单?此方法调用DataBase的许多请求:

List<BigClass> data = context.Table1_Name ... 

foreach(var item in data) 
{ 
    item.LittleClassList = context.Table2_Name ... 
} 

Lambda语法是首选。谢谢。

+0

您的文章意图不明确。请澄清,以便有人可以帮助你。 – 2013-02-20 14:21:10

回答

-1
List<LittleClass> littleClassesOfListBigClasses = new List<LittleClass>(); 

    context.BigClass.ToList().ForEach(e=>littleClassesOfListBigClasses.AddRange(e.LittleClassList)); 

特别为Dave A

我想OP想要的是: 他想要将所有存储在db中的LittleClass由一个lambda表达式。

说明有关如何我的代码工作:

1)我用EF(实体框架)。如果你不知道它是什么,你可以阅读信息 here。在问题中我看到OP知道什么是EF以及如何使用它,所以我没有找到解释的必要。 2)我从数据库表BigClass的所有数据,并把它作为列表(1个查询) 3)我使用(从LINQ)的ForEach要经过返回BigClass列表和所有LittleClass ES添加到littleClassesOfListBigClasses

注意你也可以添加前向WhereToList没有得到存储在BigClass表中的所有数据,但只是一部分,它会是这个样子:

context.BigClass.Where(some lambda-expression).ToList() 

所以我的答案是现在清楚了吗?

+0

请你在做''时写下你为什么认为这是一个不好的解决方案? – Maris 2013-02-15 10:45:03

+0

1)OP不清楚2)你的贴子是一个模糊主题的暗黑猜测。对任何人都没有价值。 – 2013-02-20 14:20:12

+0

你在说什么?在使用这两行代码后,您将在littleClassesOfListBigClasses中获取存储在db中的所有'LittleClass'。 – Maris 2013-02-21 05:06:52

1
from big in context.TableA 
from little in big.LittleClassList 
select little; 

而在扩展格式

Context.TableA.Where(...).SelectMany(x=>x.LittleClassList); 
+0

你的方式会更好。向上! – Maris 2013-02-21 06:02:55