2

我在我的应用程序中使用 RavenDB,默认情况下,文档的 id 看起来像这样:

homes/1 

其中homes是类的集合类型名称Home。如果我创建一个名为的新类,Blog我最终会得到一个像这样的 id:

blogs/1 

现在,两者HomeBlog都是我的 CMS 中的页面,我希望两者homes/1blogs/1使用PageController. 那么,是否可以使用约束或类似的东西来做到这一点,因为只有继承特定类的类型才由PageController端点处理,这一点很重要?

4

1 回答 1

0

你有两种不同的选择。

如果它是PagesController,并且用户正在执行诸如创建和编辑页面之类的对象,那么 和 可能不应该有两个单独的实体Home类型Blog。应该有一个简单的Page类。它可以有一个PageType属性来区分它们,但它们可能不需要是单独的对象。如果您采用这种方法,您将在 RavenDB 中拥有带有pages/1.

如果有明显不同的字段,那么也许你确实有一个HomeBlog类,但它们都应该从一个类继承,Page并且任何共同的属性都应该放在那里。如果您采用这种方法,您仍然会在 RavenDB 中使用 和 之类的键获得homes/1文档blogs/1。您可能想查看有关 RavenDB 中的多态性的此页面。使用这种方法,您可能仍然需要一个PagesController,或者您可能需要单独的HomePagesControllerBlogPagesController具体取决于您的需要。

于 2013-07-14T04:49:07.020 回答