实体框架:较大实体的子集实体

时间:2011-04-05 16:38:50

标签: c# linq-to-entities entity subset

Sooo基本上我有一个名为Comment的表。在那张桌子上我有三个字段,

  • ID
  • 标题
  • 文本

我已经为表创建了一个Entity对象,它映射了所有三个字段,但我现在想要的是另一个名为CommentHeader的Entity,它只映射ID和Title。出于速度原因,我只想加载所有注释的标题而不是文本。那么解决这个问题的最佳方式是什么?

我不是在寻找带有var对象的Select语句。我可以自己想出那个,我真的不喜欢那个解决方案,因为我更喜欢在Entity对象后面抽象它。

我尝试了一个明显的解决方案,即只复制原始的Entity对象并从中删除Text。这导致了错误,因为只有一个实体可以无条件地映射到一个表。听起来我觉得我别无选择只能使用Select语句。我只是想在做一些愚蠢的事情之前确定一下。

(顺便说一下,为了简单起见,这个例子只有三个字段。假设标题中可能有更多的字段。这是我不想只使用带有var对象的select的主要原因,因为它不仅仅是一个领域,而且可能是一大堆领域。)

1 个答案:

答案 0 :(得分:3)

最简单的方法可能是在数据库中创建一个只从Comment表中选择ID和title的视图(“CommentHeaders”)。然后更新模型并添加视图,这将基于这些列创建新实体。