После завершения кода ниже все выглядит хорошо.Когда я захожу в SQL Manager и запрашиваю таблицу, она никогда не заканчивает чтение.Перед выполнением есть только одна строка в таблице, которая является удалением.
Код:
AgencyQueue aQueue = null;
NHUnitOfWork workO = _agencyQueueRepository.UnitOfWork<NHUnitOfWork>();
aQueue = _agencyQueueRepository.First<AgencyQueue>(x => x.CertificateId == id);
if (aQueue != null)
{
// _agencyQueueRepository.Delete(aQueue);
workO.GetSession<AgencyQueue>().Delete(aQueue);
workO.GetSession<AgencyQueue>().FlushMode = FlushMode.Always;
//workO.GetSession<AgencyQueue>().Flush();
using (var tx = workO.GetSession<AgencyQueue>().BeginTransaction())
{
tx.Commit();
workO.GetSession<AgencyQueue>().Delete(aQueue);
tx.Dispose();
}
}
/*using (var scope = new UnitOfWorkScope())
{
aQueue = _agencyQueueRepository.First<AgencyQueue>(x => x.CertificateId == id);
if (aQueue != null)
{
_agencyQueueRepository.Delete(aQueue);
scope.Commit();
//UnitOfWorkManager.CurrentTransactionManager.CurrentUnitOfWork.Flush();
scope.Complete();
}
}*/
Код с комментариями представляет собой то, что мы обычно делаем для обработки персистентности домена, но этов настоящее время не работает, как это было.Вот почему я использую методы уровня сеанса.
Я довольно новичок в NHibernate, но после изучения многих проблем, с которыми мы столкнулись, оказалось, что мы не используем его, как многие другие.
Кто-нибудь еще видел эту проблему или знает, что я делаю не так?