sql >> Database >  >> RDS >> Oracle

NHibernate TransactionScope-probleem met Oracle 11g

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



  1. juiste manier om gegevens in te voegen met id als auto-increment in mysqli

  2. Oneindig scrollen Alle items tegelijk laden?

  3. Selecteer twee kolommen uit dezelfde tabel met verschillende WHERE-voorwaarden

  4. Een array van gegevens doorgeven als invoerparameter aan een Oracle-procedure