NHibernate does not delete child

I can not get NHibernate to delete this child, it terminates without any exceptions and without deleting anything:

    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);
    }

Here is my supplier mapping:

        mapping.HasMany(x => x.W9)
               .KeyColumn("VendorFk")
               .Cascade.AllDeleteOrphan()
               .AsBag();

The My VendorW9 table contains a link to the vendor identifier in the form of VendorFk. I have no restriction settings, do I need to set up primary key relationships? NHibernate works great for everyone except removing orphans.

+3
source share
1 answer

Try adding 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();
} 
+1
source

Source: https://habr.com/ru/post/1770022/


All Articles