我想弄清楚如何使用 Entity Framework (5) Code First 来表示用户之间的友谊。我最初的想法是创建一个类 Friendship,其中包含对两个 User 实例的引用,以便友谊由单独的对象表示。
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 Migrations 创建数据库时,由于 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.
关于如何解决这个问题的建议将非常受欢迎。