我无法让NHibernate删除这个子对象,它完成时不会抛出任何异常并且不删除任何内容:
public void DeleteW9(int vendorId, int vendorW9Id)
{
var vendor = vendorRepository.Get(vendorId);
var W9 = vendor.W9.Where(x => x.Id == vendorW9Id).First();
vendor.W9.Remove(W9);
vendorRepository.SaveOrUpdate(vendor);
}
这是我的供应商映射:
mapping.HasMany(x => x.W9)
.KeyColumn("VendorFk")
.Cascade.AllDeleteOrphan()
.AsBag();
我的VendorW9表包含VendorFk形式的供应商ID的引用。我没有约束设置,是否需要设置主键关系?除了删除孤儿外,NHibernate对一切都很好。
答案 0 :(得分:1)
尝试添加vendorRepository.Commit():
public void DeleteW9(int vendorId, int vendorW9Id)
{
var vendor = vendorRepository.Get(vendorId);
var W9 = vendor.W9.Where(x => x.Id == vendorW9Id).First();
vendor.W9.Remove(W9);
vendorRepository.SaveOrUpdate(vendor);
vendorRepository.Commit();
}