我正在使用EF 6 - Code First在MS SQL Server上开发数据库 我有这样的架构: 广告|留言|附件
其中
广告有很多消息 广告有很多附件
消息包含许多附件
附件表有2个FK,一个用于广告,一个用于消息。 消息表具有1FK到广告。
我想创建级联规则当我删除广告时,它会删除此广告的所有邮件及其附件(邮件附件)和广告附件,但到目前为止我都失败了。
我得到了
引入FOREIGN KEY约束 表''附件'上的'FK_dbo.Attachments_dbo.Messages_MessageId'可以 导致循环或多个级联路径。指定ON DELETE NO ACTION或 ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。
无法创建约束或索引。查看以前的错误。
ModelBuilder代码是以下
modelBuilder.Entity<Attachments>()
.HasOptional(a => a.Advertisement)
.WithMany(a => a.Attachments)
.WillCascadeOnDelete(true);
modelBuilder.Entity<Attachments>()
.HasOptional(a => a.Message)
.WithMany(a => a.Attachments)
.WillCascadeOnDelete(true);
modelBuilder.Entity<Messages>()
.HasRequired(m => m.Advertisement)
.WithMany(u => u.Messages)
.WillCascadeOnDelete(true);