到目前为止,我一直通过 Code First 成功使用 EF5 从我的模型中构建我的数据库。但是,我最近遇到了一个(相当)常见的循环/多级联路径问题。我了解问题所在,通常,我通过针对我的实体编写规则以禁用分支一侧的 CascadeOnDelete 来修复它。这种情况和我目前的情况的不同之处在于,我通常在多对多关系中创建中间“连接”表。
因此,例如,我可能有: Users => UserLeagues <= Leagues 然后我这样做:
modelBuilder.Entity<UserLeagues>()
.HasRequired(u => u.League)
.WithMany()
.HasForeignKey(l => l.LeagueId)
.WillCascadeOnDelete(false);
我在哪里创建了 UserLeague 表(它需要一些额外的信息,所以这是有道理的)。在我最近的案例中,我只需要创建一个多对多关系。所以,我没有费心去创建这个中间表。相反,我让 EF 自动生成它。
结果,我不确定如何在一侧停止级联删除,因为我无法像手动创建该多对多表那样直接访问 UserLeagues 表。有什么建议吗?这是我的模型...
public User {
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<League> Leagues { get; set; }
}
public League {
public int Id { get; set; }
public int Score { get; set; }
public virtual ICollection<User> Users { get; set; }
}