2013-02-08 5 views
2

컴퓨터를 제거 할 때 삭제 작업을 계단식으로 수행 할 수 있습니까? 기본적으로 컴퓨터를 삭제할 때 환경 및 제품을 제외한 모든 참조를 제거하려고합니다.EF5 코드 첫 번째 계단식 삭제시

컴퓨터 엔티티 :

public class Computer 
{ 
    [Key] 
    public int Id { get; set; } 

    public string IpAddress { get; set; } 

    public string Name { get; set; } 

    public string UserFriendlyName { get; set; } 

    public string Description { get; set; } 
} 

인스턴스 법인 : 많은 relationship.is에

public class Instance 
{ 
    public Instance() 
    { 
     TestResults = new HashSet<TestResult>(); 
     Environments = new HashSet<Environment>(); 
    } 

    [Key] 
    public int Id { get; set; } 

    public string Name { get; set; } 

    public string Version { get; set; } 

    public string UserFriendlyName { get; set; } 

    public virtual Product Product { get; set; } 

    public virtual Profile LastKnownProfile { get; set; } 

    public virtual Computer Computer { get; set; } 

    public virtual ICollection<TestResult> TestResults { get; set; } 

    public virtual ICollection<Environment> Environments { get; set; } 
} 

답변

2

을 관련 기록을 삭제하는 당신이 필요 Fluent API를 사용하여 관계를 정의하십시오. 이 MSDN에 꽤 잘 설명되어 있습니다

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    modelBuilder.Entity<Computer>() 
       .HasRequired(x => x.Instance) 
       .WithRequiredPrincipal(x => x.Computer) 
       .WillCascadeOnDelete(); 

    modelBuilder.Entity<Instance>() 
       .HasRequired(x => x.LastKnownProfile) 
       .WithRequiredPrincipal(x => x.Instance) 
       .WillCascadeOnDelete(); 

    modelBuilder.Entity<Instance>() 
       .HasMany(x => x.TestResults) 
       .WithOptional(x => x.Instance) 
       .WillCascadeOnDelete(); 
} 

: Configuring Relationships with the Fluent API

+0

고맙습니다. 나는 그 링크를 북마크했다. – twreid

0

확인 많은 폭포 국가에 대한 삭제 끄고 수동으로

+0

예,이 꺼져 같은 것을 사용합니다. 그러나 컴퓨터를 삭제할 때 인스턴스를 삭제하도록 구성하는 방법에 더 관심이 있습니다. – twreid

관련 문제