2015-09-25 65 views
2

我包括如下东西。如何进行双重包括两个层次的深度?

List<Donkey> donkeys = context.Donkeys 
    .Include(donkey => donkey.Monkey) 
    .ToList(); 

当然,每只猴子都有一个指向它的驴子的指针。但是,我只注意到还有一些奇怪的东西,每个猴子都喜欢它。在这种情况下,我应该如何执行额外的包含?

List<Donkey> donkeys = context.Donkeys 
    .Include(donkey => donkey.Monkey) 
    .Include(donkey => donkey.Monkies.Wonkies) 
    .ToList(); 

以上将无法使用,因为monkies不知道wonkies。这有点令人惊讶,因为如果我们查看monkies,我们可以将wonkies包括进它们中......所以我相当肯定我刚刚得到了错误的语法。

是否有语法可以让我将这些图片带入这张图片?谷歌搜索一无所有,但它可能是因为我不能很好地描述它。

+0

。 Include是System.Data.Object.Object()的一部分,它是数据库的一部分。它看起来像Donkeys是一个DataSet,Monkey是一个DataTable,而Wonkies是DataTable中的一列。所以返回对象是列表而不是列表。 – jdweng

+0

你怎么看?所有这三个实际上都是表格(或视图)。 –

回答

3
List<Donkey> donkeys = context.Donkeys 
    .Include(donkey => donkey.Monkies) 
    .Include(donkey => donkey.Monkies.Select(monkey => monkey.Wonkies)) 
    .ToList(); 

或你如何使用包含

List<Donkey> donkeys = context.Donkeys 
    .Include("Monkey") 
    .Include("Monkey.Wonkey") 
    .ToList(); 
+0

您是否知道答案或您是否提供gogle?如果你用Google搜索,你有多难过?什么是serach键? –

+0

谷歌“linq包括列表清单” – daniel

+2

如果你玩ef和linq很多,那么你就会知道。 – daniel