2011-01-20 51 views
1

标题应该是自解释的。 QueryViewEDMX允许预定义的投影和条件查询。 QueryView创建额外的只读映射。是否可以在EF Code-First中使用QueryView?

例子:

假设我们有BlogPost表具有TitleShortDescriptionContent列。如果我们想要使用BlogPost,我们将直接使用这个实体。如果我们想要显示最近的BlogPosts列表,只显示标题和说明,我们也不想加载内容。一种方法是直接使用带投影的查询。其他方法是将此投影映射到EDMX中(通过使用QueryView =可重复投影是映射的一部分)到名为BlogPostInfo的新实体。然后,当显示博客帖子列表时,您可以查询您的上下文为BlogPostInfo实体。

回答

0

我发现如果从EDMX生成DbContext,则使用QueryView是可行的,因为在这种情况下,DbContext仅包装EDMX中的映射。但这不是我想要的。代码优先本身可能不提供任何QueryView等效,所以最好的方法可能是直接在派生的DbContext实现上定义可重复使用的投影查询。

+2

你能解释一下你是什么意思?“最好的方法可能是定义可重复使用的投影查询作为方法直接派生的DbContext实现。” – 2011-07-20 22:42:04