我有这两个实体:
public class Profile
{
public int ProfileID { get; set; }
public ICollection<Friend> Friends { get; set; }
}
public class Friend : BaseEntity
{
public int FriendID { get; set; }
public int ProfileID { get; set; }
[ForeignKey("ProfileID")]
public Profile Profile { get; set; }
public int FriendProfileID { get; set; }
[ForeignKey("FriendProfileID")]
public Profile FriendProfile { get; set; }
}
我想很清楚我想要做什么。我希望个人资料能够拥有一组引用其他个人资料的朋友。如果没有在 OnModelCreating 中指定任何内容,我会收到以下错误:
在表 'Friends' 上引入 FOREIGN KEY 约束 'FK_dbo.Friends_dbo.Profiles_FriendProfileID' 可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
这意味着我需要在上下文的 OnModelCreating 方法中使用流利的 API 指定 WillCascadeOnDelete(false)。但是,我似乎无法使用这些关系找出正确的语法。
如何解决级联删除周期并让实体框架容忍这种关系?