Asp.net mvc willcascadeondelete在。netMVC4不工作

Asp.net mvc willcascadeondelete在。netMVC4不工作,asp.net-mvc,entity-framework,ado.net,ef-code-first,Asp.net Mvc,Entity Framework,Ado.net,Ef Code First,我正在创建.NETMVC4应用程序。我有两个实体,分别是group和groupmembers。组与组成员有一对多关系。 这是我的课 public class Group { public int GroupId{get;set;} public virtual ICollection<GroupMember> Members { get; set; } } public class GroupMember { public int GroupMembe

我正在创建.NETMVC4应用程序。我有两个实体,分别是group和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; }

    }
公共类组
{ 
public int GroupId{get;set;}
公共虚拟ICollection成员{get;set;}
}
公共类组成员
{
public int GroupMemberId{get;set;}
public int GroupId{get;set;}
公共虚拟组{get;set;}
}
在模型方面,我正在使用代码

 modelBuilder.Entity<GroupMember>()
          .HasRequired(e => e.Group)
            .WithMany()
            .HasForeignKey(e => e.GroupId)
           .WillCascadeOnDelete();
modelBuilder.Entity()
.HasRequired(e=>e.Group)
.有很多
.HasForeignKey(e=>e.GroupId)
.WillCascadeOnDelete();
我的问题是删除组时,组中的成员没有被删除。请任何人给我一个解决方案

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

您可以在SSMS designer中通过打开关系选择Delete for Cascade Action来执行此操作,也可以在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

什么是GroupUser?您的ModelBuilder正在配置,但您没有向我们显示实体。您有GroupMember和Grouphave您是否尝试过。WillCascadeOnDelete(true)??