問題のあるテーブルが 2 つあります。
最初の表はユーザーに関するもので、- があり
userId, username, password, etc
ます。2 番目はメッセージの処理であるため、
messageId, senderId, receiverId,
messageContent があります。
ご覧のとおり、 と の両方senderId
をreceiverId
users テーブルの userId に関連付ける必要があります。
しかし、Code First を使用しようとすると、クラッシュするだけです。例外が発生します:
「テーブル 'Messages' に FOREIGN KEY 制約 'FK_dbo.Messages_dbo.Users_ReceiverId' を導入すると、サイクルまたは複数のカスケード パスが発生する可能性があります。ON DELETE NO ACTION または ON UPDATE NO ACTION を指定するか、他の FOREIGN KEY 制約を変更してください。」
これは私がメッセージクラスで関係を作った方法です:
[ForeignKey("Sender")]
public int SenderId { get; set; }
public virtual User Sender { get; set; }
[ForeignKey("Receiver")]
public int ReceiverId { get; set; }
public virtual User Receiver { get; set; }
何か案は?私は今立ち往生しています。データベースを最初に実行すると問題なく動作しますが、コードを最初に実行するとうまくいきません。