怎么说EF,不要加载所有属性!

时间:2010-12-11 06:06:04

标签: c# entity-framework silverlight-4.0 entity-framework-4

有一个有很多关系的实体,当我说EF在实体上加载查询时,它会加载所有属性(OK)和关系(我不想要)!

这是对性能的一个很大的惩罚,因为我只需要一些属性而不是所有关系。

如何说EF只加载实体的属性而不加载关系(EntityCollection<TEnitity>)?

我想手动加载关系的属性!

2 个答案:

答案 0 :(得分:3)

您确定导航属性正在急切加载吗?它们不应该是默认的。您使用的是POCO还是Code First?如果是,那么您需要确保导航属性标记为“虚拟”。虚拟属性将被延迟加载。

要检查导航属性是延迟加载还是预先加载,您需要使用SQL Profiler之类的工具。

答案 1 :(得分:1)

约翰尼是正确的; ObjectContextOptions.LazyLoadingEnabled的默认值为false。但是,当我从数据库创建模型时,模型的默认值为true。如果您使用生成的EF类,请尝试将其设置为false

alt text