Entity Framework (5) Code First を使用してユーザー間の友情を表現する方法を理解しようとしています。私の最初のアイデアは、2 つの User インスタンスへの参照を含むクラス Friendship を作成して、友情が別々のオブジェクトで表されるようにすることでした。
public class Friendship
{
public virtual int Id { get; set; }
[Required]
public virtual UserProfile User1 { get; set; }
[Required]
public virtual UserProfile User2 { get; set; }
[Required]
public virtual DateTime Since { get; set; }
}
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
[Required]
public string UserName { get; set; }
}
ただし、EF 移行を介してデータベースを作成しようとすると、SQL エラーが原因で困惑します。
Introducing FOREIGN KEY constraint 'FK_dbo.Friendships_dbo.UserProfile_User2_UserId' on table 'Friendships' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
この問題を解決する方法についての提案は大歓迎です。