【发布时间】:2010-05-03 05:46:44
【问题描述】:
我在 4.0 中开发了实体框架 (.edmx) 应用程序,因为我获得了查询表的所有数据及其外键引用的表数据。但是当我将项目更改为 3.5 时,我无法获取外键引用表数据的数据。请帮帮我...
【问题讨论】:
标签: asp.net entity-framework linq-to-entities dynamic-data
我在 4.0 中开发了实体框架 (.edmx) 应用程序,因为我获得了查询表的所有数据及其外键引用的表数据。但是当我将项目更改为 3.5 时,我无法获取外键引用表数据的数据。请帮帮我...
【问题讨论】:
标签: asp.net entity-framework linq-to-entities dynamic-data
在 EF4 中包含延迟加载,并且默认情况下处于启用状态。
在以前的版本中没有这样的运气:您可能需要添加一个 .Include() 来自动获取其他数据(急切加载)或在引用上调用 Load() 以加载它们(手动)。
如果参考表是“详细信息”,你会这样做......
var featuredOffers = context.Hosters_FeaturedOffer.Include("Details").ToList();
见http://msdn.microsoft.com/en-us/library/bb896272.aspx
顺便说一句:也搜索“强类型包含” - 人们编写了一些扩展方法来删除魔术字符串并将其替换为经过编译时检查的 lambda 表达式。
【讨论】:
如果您使用的是较新版本的 EF,请参考未来的答案;
var o = db.Order.Include(i => i.User).Include(i => i.OrderItem).FirstOrDefault(x=>x.OrderId == orderId);
【讨论】: