【发布时间】:2017-09-03 07:43:14
【问题描述】:
我有一个名为 DadosvalmetSam (Parent) 的类,它与 DadosfuncionarioSam(Child) 具有一对多的关系。
下面的类和映射:
DadosvalmetSam
public class DadosvalmetSam
{
public DadosvalmetSam()
{
dadosFuncionarios = new List<DadosfuncionarioSam>();
}
public virtual int codigoDvm { get; set; }
public virtual MetanomeSam codmenDvm { get; set; }
public virtual ValidadeSam codvalDvm { get; set; }
public virtual IList<DadosfuncionarioSam> dadosFuncionarios { get; set; }
}
public class DadosvalmetSamMap : ClassMap<DadosvalmetSam>
{
public DadosvalmetSamMap()
{
Table("dadosvalmet_sam");
Id(x => x.codigoDvm).Column("codigo_dvm").GeneratedBy.Identity().Not.Nullable();
References(x => x.codmenDvm).Column("codmen_dvm").Not.Nullable().Not.LazyLoad();
References(x => x.codvalDvm).Column("codval_dvm").Not.Nullable().Not.LazyLoad();
HasMany(x => x.dadosFuncionarios).KeyColumn("coddvm_dfu").Cascade.All().Not.LazyLoad();
}
}
DadosfuncionarioSam
public class DadosfuncionarioSam
{
public DadosfuncionarioSam()
{
}
public virtual DadosvalmetSam coddvmDfu { get; set; }
public virtual Funcionario codfunDfu { get; set; }
public virtual int codigoDfu { get; set; }
public virtual float? valorDfu { get; set; }
}
public class DadosfuncionarioSamMap : ClassMap<DadosfuncionarioSam>
{
public DadosfuncionarioSamMap()
{
Table("dadosfuncionario_sam");
Id(x => x.codigoDfu).Column("codigo_dfu").GeneratedBy.Identity().Not.Nullable();
References(x => x.codfunDfu).Column("codfun_dfu").Not.Nullable().Not.LazyLoad();
Map(x => x.valorDfu).Column("valor_dfu").Not.Nullable();
References(x => x.coddvmDfu).Column("coddvm_dfu").Nullable();
}
}
当我插入一个 DadosvalmetSam 时,NH 将所有数据插入到 IList 中,这正是我所期望的。但是当我更新一个 DadosvalmetSam 并且在这次更新中我从 IList 中删除了一行时,NH 只是将 DadosfuncionarioSam 中的 FK 设置为 null 并且它没有删除记录,我该如何解决这个问题?
【问题讨论】:
标签: c# nhibernate fluent-nhibernate mapping one-to-many