.netMVC4中的willcascadeondelete无效

时间:2012-10-18 11:59:54

标签: asp.net-mvc entity-framework ado.net ef-code-first

我正在创建.net MVC4应用程序。我有两个名为group and groupmembers的权利。小组与小组成员有一对多的关系。 这是我的课程

public class Group
  { 
    public int GroupId{get;set;}
    public virtual ICollection<GroupMember> Members { get; set; }
  }

public class GroupMember
{
  public int GroupMemberId { get; set; }

    public int GroupId { get; set; }
    public virtual Group Group { get; set; }

    }

在模型方面我正在使用代码

 modelBuilder.Entity<GroupMember>()
          .HasRequired(e => e.Group)
            .WithMany()
            .HasForeignKey(e => e.GroupId)
           .WillCascadeOnDelete();

我的问题是在删除群组时群组成员没有被删除。任何人都可以给我一个解决方案

1 个答案:

答案 0 :(得分:-1)

WillCascadeOnDelete()告诉EF数据库将执行删除。 EF不执行级联,因此您需要更改表以添加删除。

您可以通过打开选择Delete for Cascade Action的关系在SSMS设计器中执行此操作,或者您可以在T-SQL中执行此操作:

ALTER TABLE dbo.GroupMember DROP CONSTRAINT fkName
GO
ALTER TABLE dbo.GroupMember ADD CONSTRAINT
fkName FOREIGN KEY (GroupId) 
REFERENCES dbo.Group (Id) ON DELETE CASCADE