Pertanyaan Praktik Terbaik Transaksi NHibernate [tutup]


Saya telah membaca tentang Nhibernate untuk sementara dan telah mencoba menggunakannya untuk situs yang saya terapkan. saya membaca artikel oleh Billy McCafferty tentang praktik terbaik NHibernate, tetapi saya tidak melihat indikasi di mana tempat terbaik untuk menangani transaksi.

Saya berpikir untuk memasukkan kode itu dalam Data Access Object (DAO), tetapi kemudian saya tidak yakin bagaimana menangani kasus di mana lebih dari satu DAO digunakan. Apa tempat terbaik untuk memasukkan kode transaksi dalam Aplikasi NHibernate Anda?


32
2017-12-11 18:50


asal


Jawaban:


Itu benar-benar tergantung pada lingkungan Anda. Sebagai contoh, kami menggunakan Open-Session-In-View (Java link tetapi pola adalah sama dalam. Net) pola di situs ASP.Net dan menggunakan HttpModule untuk mengontrol sesi dan transaksi. The HttpModule membuka sesi dan memulai transaksi di event BeginRequest dan kemudian melakukan transaksi dan menutup sesi dalam acara EndRequest.

Lingkungan dan pola komunikasi yang berbeda akan mengarah ke strategi manajemen sesi / transaksi yang berbeda.

Ada banyak diskusi tentang berbagai strategi dalam NHibernate Users Group begitu juga di web pada umumnya.


10
2017-12-11 19:00



Berdasarkan Ayende, Anda mungkin perlu secara eksplisit menambahkan transaksi untuk semua, bahkan mencari. Silakan periksa di sini: http://nhprof.com/Learn/Alerts/DoNotUseImplicitTransactions


11
2018-04-17 04:37



Cara paling sederhana adalah menggunakan Transaksi Cerdas yang dijelaskan di

http://rajputyh.blogspot.com/2011/02/nested-transaction-handling-with.html

Menggunakan NHibernateSessionManager populer dan kelas sederhana ditulis untuk memastikan bahwa "Anda membuka transaksi ketika Anda ingin" tanpa mengkhawatirkan apa logika orang tua dan sub logika menangani transaksi.


0
2018-04-19 16:05