1

我正在尝试Id从对象 heirachy 中深几级的集合中检索 's 列表。当我尝试执行 aToList()时,我一直在检索到一个EntityList<>.. 这意味着它不允许我检索实例的BarId属性,因为它EntitySet是一个Enumerable,而不是单个实例对象。

Foo.Child1 (1 to 1)
Child1.Children2 (0 to many of type Bar)
Bar.BarId int;

IList<Foo> fooList = (from blah blah blah).ToList();

var children2List = (from x in fooList
select x.Child1.Children2).ToList();

它不断返回children2List作为一个EntitySet<Bar>,而不是一个IList<Bar>。因此,我正在努力BarIdchildren2List.

请帮忙!

4

3 回答 3

3

您可以使用:

var children2List = fooList.SelectMany( x => x.Child1.Children2 ).ToList();

这将允许您执行以下操作:

children2List.ForEach( b => b.BarId.Print() );
于 2009-03-16T00:59:02.693 回答
0

在您的查询中,您将整个结果变成一个列表,而不是单个 Children2 集合。尝试

var children2List = (from x in fooList
select x.Child1.Children2.ToList()).ToList();

这会将每个 Children2 变成一个列表。

于 2009-03-16T00:53:17.167 回答
0

EntitySet<T>工具IList<T>,所以你已经回来IList<Bar>

于 2009-03-16T01:44:17.093 回答