Het probleem met het gebruik van alleen het transactiebereik wordt hier beschreven:NHibernate FlushMode Auto spoelt niet voor zoeken
Het lijkt erop dat nhibernate (v3.1 met oracle dialect en 11g db w/opd.net v2.112.1.2) zijn eigen transacties vereist om het flushing-probleem te voorkomen, maar ik heb het transactiebereik niet kunnen laten werken met de nhibernate transacties.
Ik krijg het niet werkend :(dit kan een defect zijn in nhibernate of odp.net, niet zeker...
vond hier hetzelfde probleem:NHibernate 3.0:TransactionScope en Auto -Flushing
OPGELOST:oplossing gevonden! door "aanmelden=dynamisch;" te plaatsen in mijn orakelverbindingsreeks, was het probleem opgelost. Ik heb zowel de nhibernate-transactie (om het flush-probleem op te lossen) als het transactiebereik als volgt kunnen gebruiken:
ISessionFactory sessionFactory = CreateSessionFactory();
using (TransactionScope ts = new TransactionScope())
{
using (ISession session = sessionFactory.OpenSession())
using (ITransaction tx = session.BeginTransaction())
{
//do stuff here
tx.Commit();
}
ts.Complete();
}
Ik controleerde mijn logbestanden en vond dit:2011-06-27 14:03:59,852 [10] DEBUG NHibernate.Impl.AbstractSessionImpl - aangemeld voor DTC-transactie:Serializable
voordat een SQL op de verbinding werd uitgevoerd. Ik zal unit testen om de juiste uitvoering te bevestigen. Ik weet echter niet zo zeker wat serializable me vertelt