Entity framework 如何访问实体框架CTP4中的子属性?
我对实体框架相当陌生,但给出一个简单的对象如下:Entity framework 如何访问实体框架CTP4中的子属性?,entity-framework,entity-framework-4,Entity Framework,Entity Framework 4,我对实体框架相当陌生,但给出一个简单的对象如下: public class Country { public string Name { get; set; } [Key] public string Code { get; set; } public bool IsPostalCodeRequired { get; set; } public ICollection<Province> Provinces { get; set; } }
public class Country
{
public string Name { get; set; }
[Key]
public string Code { get; set; }
public bool IsPostalCodeRequired { get; set; }
public ICollection<Province> Provinces { get; set; }
}
公共类国家
{
公共字符串名称{get;set;}
[关键]
公共字符串代码{get;set;}
公共bool IsPostalCodeRequired{get;set;}
公共ICollection省{get;set;}
}
DbContext返回的属性为null。如果我在linq语句中使用Include方法来包含省,那么它就可以工作。但我想知道,当我实际访问该属性时,是否有办法加载它们?我知道这里需要考虑性能问题,但我只想知道如何做到这一点
谢谢
ObjectContext.ContextOptions.LazyLoadingEnabled
为true。这是新项目的默认设置virtual
,而您的属性则不是克雷格说了这一切。只是想说默认情况下ObjectContext已关闭LazyLoading。尽管在创建新的.net 4.0项目时,模型设计器会显式地为u for.net 4.0项目启用它。关闭它是因为当惰性加载不可用时,EF需要保留.NET3.5的遗留行为。但是,正如您可能注意到的,您使用的是Dbcontext,它是新的,不依赖于.NET3.5。因此,默认情况下将启用懒散加载,以提供无缝体验