【问题标题】:How to say EF , Don't Load all properties!怎么说 EF ,不要加载所有属性!
【发布时间】:2010-12-11 06:06:04
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    要检查导航属性是延迟加载还是急切加载,您需要使用 SQL Profiler 等工具。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-02-21
        • 1970-01-01
        • 1970-01-01
        • 2016-12-21
        • 2021-11-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多