在下面的代码完成后,一切都很顺利。当我转到我的SQL管理器并查询表时,它永远不会读完它。执行前表中只有一行,即删除。
代码:
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很陌生,但在研究了我们遇到过的许多问题之后,似乎我们没有像其他许多问题那样使用它。
有没有其他人看过这个问题,或者知道我做错了什么?