有一个有很多关系的实体,当我说EF在实体上加载查询时,它会加载所有属性(OK)和关系(我不想要)!
这是对性能的一个很大的惩罚,因为我只需要一些属性而不是所有关系。
如何说EF只加载实体的属性而不加载关系(EntityCollection<TEnitity>
)?
我想手动加载关系的属性!
答案 0 :(得分:3)
您确定导航属性正在急切加载吗?它们不应该是默认的。您使用的是POCO还是Code First?如果是,那么您需要确保导航属性标记为“虚拟”。虚拟属性将被延迟加载。
要检查导航属性是延迟加载还是预先加载,您需要使用SQL Profiler之类的工具。
答案 1 :(得分:1)
约翰尼是正确的; ObjectContextOptions.LazyLoadingEnabled的默认值为false
。但是,当我从数据库创建模型时,模型的默认值为true
。如果您使用生成的EF类,请尝试将其设置为false
。