मैं एनएचबीर्नेट दृढ़ता परत के लिए अपना खुद का IUnitOfWork
कार्यान्वयन करने के बारे में सोच रहा हूं।क्या आपके पास निबर्ननेट में एक सत्र के अंदर कई लेन-देन हो सकते हैं? और क्या यह एक बुरा विचार है?
ऐसा लगता है कि यह करने के लिए सही तरीके से ISession
और ITransaction
निर्माता में instantiated, और फिर नाशक में निपटाया या Dispose()
विधि के लिए किया जाएगा।
, किसी Save()
विधि का आह्वान है, तो ISession
प्लावित किया जाएगा और ITransaction
फिर से पूरा होगा, इसलिए Save()
बुला के बाद, वहाँ Save()
के लिए एक वैध खुला लेन-देन नहीं होगा ... जब तक कि मैंने इसके लिए हामी पहला लेनदेन और तुरंत एक और नया लेनदेन खोला। लेकिन क्या यह एक अच्छा विचार है?
डिज़ाइन-वार, यह एक प्रतिबद्धता संचालन करने के लिए समझ में आता है, लेकिन मुझे आवश्यक रूप से कोड का नियंत्रण नहीं होगा और अन्य डेवलपर्स यूनिटऑफवर्क पैटर्न का पालन करने के बारे में कम अनुशासित हो सकते हैं।
क्या मैं यूनिटऑफवर्क प्रति सत्र कई लेनदेन के लिए सहिष्णु बनाने की कोशिश करके कुछ खो देता/प्राप्त करता हूं? क्या मुझे सिर्फ एक नया लेनदेन करने की बजाय एक खुले लेनदेन की जांच करनी चाहिए और अपवाद फेंकना चाहिए?
वेब या डेस्कटॉप ऐप? – Phill
इसे एक वेब एप्लिकेशन के लिए डिज़ाइन किया जा रहा है। –