의 나는이 두 가지 아주 기본적인 엔티티 있다고 가정 해 봅시다 : 몇 가지 이유를 들어EF4.1 코드 첫째, 종속 기업에 대한 탐색 속성이없는 관계를 삭제 폭포를 해제하는 방법
public class ParentEntity
{
public int Id;
public virtual ICollection<ChildEntity> Childrens;
}
public class ChildEntity
{
public int Id;
public int ParentEntityId; // Foreign Key
public virtual ParentEntity parent; // [NOTWANTED]
}
을, 나는 원하지 않는다 부모에게 참조를 다시 보류하는 ChildEntity입니다. 난 그냥 ParentEntity ID하지만 더 아무것도 유지 싶어요. 지금까지 문제가 없지만 [NOTWANTED] 라인 만 삭제하면 모든 것이 예상대로 작동합니다.
내 문제는 여기에 있습니다 : 해당 특정 경우 캐스케이드 삭제를 비활성화하는 방법은 무엇입니까?
나는 아직도 부모 탐색 속성이처럼 쉬울 것이다이 있다면 : 나는 (내가 삭제에 캐스케이드을 해제 달성 할 수있는 방법에 대해 아무 생각이 탐색 속성이없는 그러나
modelBuilder.Entity<ChildEntity>()
.HasRequired(c => c.parent)
.WithMany(p => p.Childrens)
.WillCascadeOndelete(false)
세계적으로 그것을 사용하지 않고를 당연히, 테이블 당, 그러나 다만 관계를 위해). 내가 지금 무슨 짓을
은 삭제에 캐스케이드를 사용하지 않도록하기 위해, null 허용 int로서 외부 키를 설정하는 것입니다,하지만 꽤 아니다 :
public int? ParentEntityId; // Foreign Key - nullable just to disable cascade on delete
나는 그것이 작동하도록 얻을 수있는 방법 유창한 API? 그것이 가능해야한다고 생각하십시오.
당신이 .hasOne (ParentEntity) – Saeid