Таблица SQL Server Кажется заблокированной после вызова фиксации транзакции NHibernate

После завершения приведенного ниже кода все выглядит хорошо. Когда я захожу в свой 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, но после изучения многих проблем, с которыми мы столкнулись, оказалось, что мы не используем его, как многие другие.

Кто-нибудь еще видел эту проблему или знает, что я делаю не так?

0 ответов

Другие вопросы по тегам