तो, नौसिखिया NHibernate उपयोगकर्ता; इसके चारों ओर अपने दिमाग लपेटने की कोशिश कर रहा है।क्या एनबीबर्ननेट जांच सकता है कि डीबी स्कीमा उत्पन्न हुआ है या नहीं?
मैं इस बात पर विचार कर रहा हूं कि तैनाती को कैसे संभालना है, और बाद में वेब ऐप में ऐड-ऑन का इंजेक्शन (जिसे अपनी खुद की दृढ़ता कक्षाओं की आवश्यकता हो सकती है)।
मैं सोच रहा था कि तैनाती के लिए SchemaExport
का उपयोग करना बहुत अच्छा काम करेगा, लेकिन मैं सोच रहा था कि एनएचबीर्नेट को मुझे एक सामान्य, कोड-आधारित तरीके से बताने के लिए कोई तरीका है कि एक स्कीमा निर्यात पहले से ही किया गया है, या नहीं। मूल रूप से, मैं इस स्यूडोकोड में तरह smething क्या करना चाहते हैं:
if(!_cfg.HasSchemaForType(typeof(MyType))
ExportSchema(typeof(MyType));
else
UpdateSchema(typeof(MyType));
जहां दो कार्य आंतरिक SchemaExport
या SchemaUpdate
क्रमश का प्रयोग करेंगे।
संपादित करें: दोस्तों, मैं अभी तक उत्तर की सराहना करता हूं, लेकिन वे थोड़ा सा बिंदु खो रहे हैं। जो मैं स्थापित करने की कोशिश कर रहा हूं वह एप्लिकेशन के लिए ऐड-ऑन को जोड़ने और हटाने की अनुमति देने का एक तरीका है जिसके लिए डीबी में परिवर्तन की आवश्यकता हो सकती है। मैं अपने कोड या जैसे संस्करण (कम से कम, इसके प्राथमिक कार्य के रूप में नहीं) के संस्करण के बारे में बात नहीं कर रहा हूं। इसलिए जब मैं ऐप को तैनात करता हूं, और जब मैं प्लग-इन जोड़ता या निकालता हूं तो सवाल कम होता है। क्या थीस प्लगइन (इसलिए छद्म कोड प्रकार की जांच) पहले तैनात किया गया है? यदि ऐसा है, तो अद्यतन चलाएं। यदि नहीं, तो निर्यात चलाएं। सही बात?
ऐप को तैनात करने की समस्या को हल करने की कोशिश नहीं कर रहा है। मैंने स्पष्टीकरण के लिए कुछ अतिरिक्त नोट्स जोड़े। आपके प्रतिक्रिया के लिए धन्येवाद! – Paul
मुझे नहीं लगता कि उसका मतलब समय पर तैनाती है ... इसे रन टाइम या प्रारंभिक समय पर होना होगा ... प्लग इन को अपनी निर्भरताओं के लिए ज़िम्मेदार होना होगा। – Webjedi
धन्यवाद; मैंने आपका जवाब 'उत्तर दिया' के रूप में चिह्नित किया क्योंकि यह सबसे पूरा था। मुझे लगता है कि एक अलग चिंता है जो ट्रैक करता है कि कौन से प्लगइन तैनात किए गए हैं शायद यह आपके लिए सबसे अच्छा मार्ग है, जैसा कि आप अपने तीसरे बुलेट में सुझाव देते हैं। – Paul