连接表的级联删除

时间:2018-04-12 11:00:01

标签: c# sql sql-server entity-framework ef-model-builder

我正在使用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);

0 个答案:

没有答案