实体框架:从实体框架中的选择中排除列?

时间:2010-08-30 19:55:26

标签: entity-framework visual-studio-2010 .net-4.0 entity-framework-4

我想要一个返回跟踪实体的ObjectQuery(不是静态数据),但我不希望它加载所有列,我想要一些列加载为null,我不想使用select,因为这将返回IEnumerable值,而不是跟踪对象。

有办法吗?

如果是,那么我如何按需完成重新加载这些列?

2 个答案:

答案 0 :(得分:2)

您是否尝试过创建视图然后映射视图?

通过创建视图,您可以选择实际所需的列,只有那些将显示在实体模型上。

答案 1 :(得分:0)

我认为唯一的方法是创建不包含您不需要的列的新实体类型。您将此实体类型映射到同一个表。按需(延迟)加载仅适用于导航属性。

修改

我之前的想法不起作用,但在某些特殊情况下,您可以使用此article中的想法。您将模拟与1:1关系相关的多个实体,而不是从单个表中建模单个实体。实体不会在属性(主键除外)中重叠,因为我之前的想法是假定的,因为它不起作用。您将拥有要立即加载的字段的主实体以及在需要时将延迟加载的相关实体。