【发布时间】:2010-08-31 15:48:03
【问题描述】:
我想要一个返回跟踪实体(不是静态数据)的 ObjectQuery,但我不希望它加载所有列,我希望某些列加载为 null,我不想使用 select,因为这将返回值的 IEnumerable,而不是跟踪的对象。
有办法吗?
如果是,我该如何完成按需重新加载这些列?
【问题讨论】:
标签: entity-framework visual-studio-2010 .net-4.0 entity-framework-4
我想要一个返回跟踪实体(不是静态数据)的 ObjectQuery,但我不希望它加载所有列,我希望某些列加载为 null,我不想使用 select,因为这将返回值的 IEnumerable,而不是跟踪的对象。
有办法吗?
如果是,我该如何完成按需重新加载这些列?
【问题讨论】:
标签: entity-framework visual-studio-2010 .net-4.0 entity-framework-4
您是否尝试过创建视图然后映射视图?
通过创建视图,您可以选择真正需要的列,并且只有那些会显示在实体模型上。
【讨论】:
我认为唯一的方法是创建不包含您不需要的列的新实体类型。您将将此实体类型映射到同一个表。按需(延迟)加载仅适用于导航属性。
编辑:
我之前的想法不起作用,但在某些特殊情况下,您可以使用来自 article 的想法。您将建模与 1:1 关系相关的多个实体,而不是从单个表中建模单个实体。正如我之前的想法所假设的那样,实体不会在属性中重叠(主键除外),因为它不起作用。然后,您将拥有包含要立即加载的字段的主要实体以及在需要时将延迟加载的相关实体。
【讨论】: