我有这种情况:
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);
}
}
我希望在删除调查时自动删除回复,如何使用Fluent NHibernate进行配置。
谢谢!
答案 0 :(得分:1)
您应该向Survey实体添加一个属性:
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();
}
}
答案 1 :(得分:0)
尝试设置引用以使用delete-orphan
选项。
NHibernate Cascades: the different between all, all-delete-orphans and save-update