2010-09-19 71 views
2

我有這樣的場景:的NHibernate多到一個級聯刪除(如何?)

public class Survey : EntityBase 
{ 
    public virtual string Name { get; set; } 
} 

public class Response : EntityBase 
{ 
    public virtual string Name { get; set; } 
    public virtual Survey Survey { get; set; } 
} 

public class SurveyMap : ClassMap<Survey> 
{ 
    public SurveyMap() 
    { 
     this.Id(e => e.Id); 
     this.Map(e => e.Name); 
    } 
} 

public class ResponseMap : ClassMap<Response> 
{ 
    public ResponseMap() 
    { 
     this.Id(e => e.Id); 
     this.Map(e => e.Name); 
     this.References(e => e.Survey);   
    } 
} 

我想回應當我刪除的調查被自動刪除,怎麼我這個配置使用功能NHibernate。

謝謝!

回答

1

你應該將屬性添加到您的調查單位:

public class Survey : EntityBase 
{ 
    public virtual string Name { get; set; } 
    public IList<Response> Responses { get; set; } 
} 

並採用級聯映射它:

public class SurveyMap : ClassMap<Survey> 
{ 
    public SurveyMap() 
    { 
     this.Id(e => e.Id); 
     this.Map(e => e.Name); 
     this.HasMany(e => e.Responses).Inverse().Cascade().All(); 
    } 
} 
+0

我想補充:使用上刪除=「級聯「關鍵(我不知道如何使用Fluent進行設置)。這將使刪除更快,因爲數據庫將照顧他們。 – 2010-09-19 22:16:36