如何在实体框架中加载外键引用表数据

时间:2010-05-03 05:46:45

标签: asp.net entity-framework linq-to-entities dynamic-data

我在4.0中开发了实体框架(.edmx)应用程序,因为我获得了查询表及其外键引用表数据的所有数据。但当我将我的项目更改为3.5时,我无法获取外键引用表数据的数据。请帮帮我...

2 个答案:

答案 0 :(得分:4)

在EF4中包含延迟加载,默认情况下处于启用状态。

在以前的版本中没有这样的运气:您可能需要添加.Include()来自动获取其他数据(急切加载)或在引用上调用Load()以加载它们(手动)。

如果参考表是“详细信息”,那么你会这样做......

var featuredOffers = context.Hosters_FeaturedOffer.Include("Details").ToList();

请参阅http://msdn.microsoft.com/en-us/library/bb896272.aspx

BTW:搜索“强类型包含”也是如此 - 人们已经编写了一些扩展方法来删除魔术字符串并用编译时检查的lambda表达式替换它。

答案 1 :(得分:2)

如果您使用的是较新版本的EF,将来的答案;

 var o = db.Order.Include(i => i.User).Include(i => i.OrderItem).FirstOrDefault(x=>x.OrderId == orderId);