NHibernate не удаляет дочерний объект - PullRequest
3 голосов
/ 18 октября 2010

Я не могу заставить 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.У меня нет настроек ограничений, нужно ли устанавливать отношения первичного ключа?NHibernate прекрасно работает для всего, кроме удаления сирот.

1 Ответ

1 голос
/ 18 октября 2010

Попробуйте добавить 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();
} 
...