2012-10-18 18 views
0

我正在創建.net MVC4應用程序。我有兩個名爲group和groupmembers的實體。小組與組員有着一對多的關係。 這裏是我的班.netMVC4中的willcascadeondelete無法正常工作

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(); 

我的問題是,同時刪除該組的組成員沒有得到任何deleted.Can一個請給我解決方案

+0

什麼是GroupUser?你的模型構建器正在配置,但你沒有向我們展示實體。你有GroupMember和Group – Dismissile

+0

你有沒有試過.WillCascadeOnDelete(true); ?? – Diego

回答

-1

WillCascadeOnDelete()告訴EF數據庫將執行刪除。 EF不執行級聯,因此您需要更改您的表以添加刪除。

您可以通過打開關係選擇刪除梯級行動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