Entity framework 实体框架和Linq到实体和.Include()几个表,或者

Entity framework 实体框架和Linq到实体和.Include()几个表,或者,entity-framework,linq-to-entities,include,Entity Framework,Linq To Entities,Include,我有一个数据库,它有一个名为PropertyValues的表,我在其中存储描述数据库表行的某些属性所需的每个值 例如,表产品如下所示: var orders = from o in dbEntities.Order.Include("Products.ProductType") .Include("Products.ProductCountry")

我有一个数据库,它有一个名为PropertyValues的表,我在其中存储描述数据库表行的某些属性所需的每个值

例如,表产品如下所示:

var orders = from o in dbEntities.Order.Include("Products.ProductType")
                                       .Include("Products.ProductCountry")
                                       .Include("Products.ProductStatus")
            select o;
ID
OrderID//产品表与订单表相关
ProductName
产品类型\u ID//描述产品类型(食品、油烟、化学品)的属性值表的ID
ProductCountry\u ID//链接到产品来源国的PropertyValue表的ID ProductStatusID//还有包含产品状态(可用、不可用)的PropertyValues表的ID

有了这样的数据库模型,要获得订单及其所有产品的类型、国家和状态,我必须这样写:

var orders = from o in dbEntities.Order.Include("Products.ProductType")
                                       .Include("Products.ProductCountry")
                                       .Include("Products.ProductStatus")
            select o;
问题是:)
是否可以自动完成(因此将包括所有相关实体)
或者有更好的方法


谢谢大家!

正如亚历克斯·詹姆斯所指出的,我认为你要找的要么是“懒散加载”,要么是“急切加载”

这篇博文解释了“延迟加载”将在实体框架的4.0版本中实现


它可以自动完成,谷歌“实体框架延迟加载”来进行设置。

只是为了明确“延迟加载”或延迟加载与快速加载不同。严格地说,这就是所要求的,但是我认为您强调延迟加载是正确的,因为它可能是真正需要的。即时加载只执行一个查询。其中,as延迟加载提供了相关对象在一个查询中加载的假象,而实际上它们不是。在访问相关对象时,EF会以静默方式发出其他查询。