2

アプリケーションで RavenDB を使用しています。デフォルトでは、ドキュメントの ID は次のようになります。

homes/1 

ここhomesで、クラスのコレクション型名Homeです。という名前の新しいクラスを作成するBlogと、次のような ID になります。

blogs/1 

現在、 と の両方Homeが私の CMS のページであり、 と の両方を使用しBlogたいと考えています。特定のクラスを継承する型のみがエンドポイントによって処理されることが重要なので、制約などを使用してこれを行うことは可能ですか?homes/1blogs/1PageControllerPageController

4

1 に答える 1

0

2 つの異なるオプションがあります。

それが であり、ユーザーがページの作成や編集などのオブジェクトを実行している場合、 と の 2 つの別個のエンティティ タイプはおそらく存在しPagesControllerないはずです。単にクラスがあるはずです。それらを区別するためのプロパティを持つことができますが、おそらく別々のオブジェクトである必要はありません。このアプローチを取ると、RavenDB に のようなキーを持つドキュメントが作成されます。HomeBlogPagePageTypepages/1

明らかに異なるフィールドがある場合HomeandBlogクラスがある可能性がありますが、両方ともクラスから継承し、Page共通のプロパティはそこに配置する必要があります。このアプローチを採用した場合でも、 RavenDB でhomes/1や などのキーを持つドキュメントを取得できますblogs/1。RavenDBのポリモーフィズムに関するこのページを参照してください。このアプローチでは、必要に応じて が必要なPagesController場合もあれば、別の が必要な場合もあります。HomePagesControllerBlogPagesController

于 2013-07-14T04:49:07.020 に答える