EFCodeFirstを使用してグラフ構造をモデル化するのに問題があります。アプリケーション内の多数の具象オブジェクトが、さまざまなタイプのエッジのいずれかに関連するノードになる可能性がある状況があります。
たとえば、2つのUserオブジェクトには関係(like、dislike、related)がありますが、それぞれが別のタイプのオブジェクト('viewed'ページ、'liked'メッセージなど)に等しく関連している可能性があります。
アプリケーション内でこれをモデル化するために、可能なすべてのノードが継承するGraphNodeの基本クラスを使用しており、各GraphNodeにはEdgeのコレクションがあります。各エッジには、SourceNode、DestinationNode、およびRelationshipType(重み付けに使用)があります。
これをデータベースファーストのストレート開発としてモデル化する方法を知っています。サロゲートキーを持つEdgeのテーブル、リンクされているオブジェクトからのPKとなるSourceObjectIDフィールドとDestinationObjectIDフィールド、タイプであるSourceObjectTypeフィールドとDestinationObjectTypeフィールドがあります。関連するオブジェクトの数ですが、サイトにはEFCodeFirstの実装が必要です。
TPT継承を使用するところまで来たので、GraphNodeIDであるPKを持つGraphNodeテーブルがありますが、これを具体的なタイプの各テーブルのPKとして使用しています。問題を引き起こそうとしている彼ら自身のPKの場所。
誰かがこれをしたことがありますか、または誰かがこれを行う方法について正しい方向に私を向けることができますか?