【发布时间】:2010-12-12 09:01:24
【问题描述】:
我不确定这个问题是否已经得到解答,我看了几个问题,但我认为它们并不是我想要的。
假设我有 3 张桌子:
Restaurant 1.....M MenuCategory 1.....M MenuItem
我有一个看起来像这样的 L2E 查询:
Restaurant = context.Restaurant
.Include(r => r.MenuCategory)
.FirstOrDefault(r => r.RestaurantId == resaurantId);
这在某种程度上有效,但它只预加载菜单类别。
作为一种解决方法,我可以遍历每个类别并在它们上调用 .Load() ,但这将涉及到更多理论上我应该需要的内容。
我真正想做的是:
Restaurant = context.Restaurant
.Include(r => r.MenuCategory)
.Include(r => r.MenuCategory.MenuItems)
.FirstOrDefault(r => r.RestaurantId == resaurantId);
但显然这不可用,因为 r.MenuCategory 是可枚举的
答案 1:
context.Restaurant.Include("MenuCategory.MenuItems");
- 这可行,但它不是强类型的。我想知道是否有人能够提出第二个强类型的答案(我可能会将这个问题移到另一个问题,因为这个问题已经得到了回答,并且回答得很好。
我已将此移至另一个问题,因为我认为从一个完美且完全按应有方式工作的答案中拿走是不公平的:
【问题讨论】:
标签: c# entity-framework linq-to-entities include