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

asp.net dynamic-data entity-framework linq-to-entities

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

一般承认的答案

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

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

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

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

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

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


热门答案

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

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



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因