0
님께서는 MVC
Entity Framework 6
DataBase First
입니다.MVC Entity Framework WillCascadeOnDelete가 작동하지 않습니다.
두 테이블이 있습니다. Groups
및 MemberGroups
, 1 대 다수의 관계가 있습니다.
Foreign Key can not be Null
언제 응용 프로그램에 데이터베이스를 추가합니까? .Edmx
그것은 각 테이블에 대한 class
생성 된 .tt
폴더 아래 Context.cs
파일
public partial class PortalEntities : DbContext
{
public VIvaVoceEntities()
: base("name=PortalEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<GroupMembers> GroupMembers { get; set; }
public virtual DbSet<Groups> Groups { get; set; }
}
생성됩니다.
public partial class Groups
{
public long Group_id { get; set; }
public string Name { get; set; }
public virtual ICollection<GroupMembers> GroupMembers { get; set; }
}
public partial class GroupMembers
{
public long MemberGroup_ID { get; set; }
public long Group_id { get; set; }
}
Delete on cascade
을하려고하고있다. 그래서
OnModelCreating
에
Context.cs
파일에 내가 캐스케이드에서 삭제하기 위해 찾은 모든 것을 추가했지만 아무것도 작동하지 않습니다.
여기까지 제가 시도한 내용입니다. 여기
modelBuilder.Entity<Groups>()
.HasMany(e => e.GroupMembers)
.WithRequired(e => e.Groups)
.WillCascadeOnDelete(true);
---------------------------------
modelBuilder.Entity<Groups>()
.HasOptional(x => x.GroupMembers)
.WithOptionalDependent()
.WillCascadeOnDelete(true);
---------------------------------
modelBuilder.Entity<Groups>().HasMany(i => i.GroupMembers)
.WithOptional(i => i.Groups)
.HasForeignKey(i => i.Group_id)
.WillCascadeOnDelete(true);
---------------------------------
modelBuilder.Entity<Groups>()
.HasRequired(e => e.GroupMembers)
.WithMany()
.HasForeignKey(e => e.Group_id)
.WillCascadeOnDelete(true);
var master = _db.Set<Groups>().Include(m => m.GroupMembers).SingleOrDefault(m => m.Group_id == 2);
_db.Set<Groups>().Remove(master);
_db.SaveChanges();
나는 다음과 같은 오류가
..."The operation failed: The relationship could not be changed because one or more of the foreign-key properties is non-nullable. When a change is made to a relationship, the related foreign-key property is set to a null value. If the foreign-key does not support null values, a new relationship must be defined, the foreign-key property must be assigned another non-null value, or the unrelated object must be deleted."
자식 레코드를 삭제하려고하지 않는 것 같다
. Null로 업데이트하려고합니다.올바른 방법은 무엇입니까?