0

.net MVC4 アプリケーションを作成しています。グループとグループメンバーという名前の 2 つのエンティティがあります。group は groupmember と 1 対多の関係にあります。ここに私のクラスがあります

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

私の問題は、グループの削除中にグループのメンバーが削除されないことです。誰か解決策を教えてください

4

1 に答える 1

-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
于 2012-10-19T05:23:04.123 に答える