使用同一端点/控制器的多个实体类型



我在应用程序中使用RavenDB,默认情况下,文档的id如下所示:

homes/1 

其中CCD_ 1是类别CCD_ 2的集合类型名称。如果我创建一个名为Blog的新类,我最终会得到一个id,比如:

blogs/1 

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

您有两个不同的选项。

如果它是homes0,并且用户正在执行创建和编辑页面之类的对象,那么HomeBlog可能不应该有两个单独的实体类型。应该只存在一个Page类。它可以具有PageType属性来区分它们,但它们可能不需要是单独的对象。如果您采用这种方法,您将在RavenDB中拥有具有pages/1等密钥的文档。

如果有明显不同的字段,那么您可能有一个HomeBlog类,但它们都应该继承自Page类,并且任何共同的属性都应该在那里。如果您采用这种方法,您仍然可以在RavenDB中获得密钥为homes/1Home0的文档。您可能想看看RavenDB中多态性的页面。使用这种方法,您可能仍然需要PagesController,或者根据需要需要需要单独的HomePagesControllerBlogPagesController

相关内容

最新更新