我在我的应用程序中使用RavenDB,默认情况下,文档的id看起来像这样:
homes/1
其中homes
是类Home
的集合类型名称。如果我创建一个名为Blog
的新类,我将得到一个像:
blogs/1
现在,Home
和Blog
都是我的CMS中的页面,我希望homes/1
和blogs/1
都使用PageController
。那么,是否可以使用约束或类似的东西来执行此操作,因为PageController
端点只处理继承特定类的类型是很重要的?
答案 0 :(得分:0)
您有两种不同的选择。
如果它是PagesController
,并且用户正在执行创建和编辑页面等对象,那么Home
和Blog
可能不应该有两个单独的实体类型。应该只有一个Page
类。它可以有PageType
属性来区分它们,但它们可能不需要是单独的对象。如果采用这种方法,RavenDB中的文档将使用pages/1
等键。
如果明显不同的字段,那么你做可能有Home
和Blog
类,但它们都应该继承自Page
类和任何共同的属性应该去那里。如果采用这种方法,您仍然可以使用homes/1
和blogs/1
等密钥在RavenDB中获取文档。您可能希望查看RavenDB中多态性的this page。使用这种方法,您可能仍需要PagesController
,或者您可能需要单独的HomePagesController
和BlogPagesController
,具体取决于您的需求。