是否可以将QueryView与EF Code-First一起使用?

时间:2011-01-20 11:02:00

标签: .net entity-framework entity-framework-4 ef-code-first

标题应该是自我解释的。 QueryView中的EDMX允许预定义投影和条件查询。 QueryView创建了额外的只读映射。

示例:

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

1 个答案:

答案 0 :(得分:0)

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