NHibernate未删除子对象

NHibernate未删除子对象,nhibernate,fluent-nhibernate,nhibernate-mapping,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,我无法让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.R

我无法让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();

My VendorW9表包含对VendorFk形式的供应商ID的引用。我没有约束设置,是否需要设置主键关系?NHibernate函数适用于除删除孤立项以外的所有功能。

尝试添加vendorRepository.Commit():


似乎需要明确告知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);
    vendorRepository.Commit();
}