0

Code First で Entity Framework を使用しています。データベースに、ユーザー間の関係を格納するテーブルがあります。テーブル構造は次のようになります。

  • RequestID
  • UserFromID
  • UserToID

UserFromIDとの両方UserToIDが User テーブルへの外部キーです。

私の User エンティティには、Relationshipssetup という仮想プロパティがあります。このプロパティを、現在のユーザーが または のいずれかでRelationshipRequestsある、上記の表からのすべてのコレクションにしたいと考えています。UserIDUserFromIDUserToID

これらは、コンテキスト内の私のバインディングです:

modelBuilder.Entity<UserProfile>()
    .HasMany(e => e.Relationships).WithRequired(e => e.UserFrom)
    .HasForeignKey(e => e.UserFromID).WillCascadeOnDelete(false);
modelBuilder.Entity<UserProfile>()
    .HasMany(e => e.Relationships).WithRequired(e => e.UserTo)
    .HasForeignKey(e => e.UserToID).WillCascadeOnDelete(true);

ただし、ユーザーの関係が取得されると、コレクション内の唯一の関係は、ユーザー ID がUserToID. 私はそれらを交換しようとしましたが、その場合、コレクションにはユーザー ID がUserFromID. 私が期待したように、2番目のバインディングが最初のバインディングを上書きするのではなく、最初のバインディングをオーバーライドしているようです。私は明らかにこれを間違っています。私の質問は、両方のキーが私が望むようにバインドされるように、このバインディングを行う別の方法はありますか、それとも別の方法で実装する必要がありますか?

ありがとう!

4

1 に答える 1