2010-10-28 12 views
9

मैं मौजूदा डेटाबेस के साथ hbms सिंक्रनाइज़ करने के लिए SchemaUpdate का उपयोग कर रहा हूं। डाटाबेस ने हाल ही में hbms के आधार पर बनाया है और यह पूरी तरह से अद्यतित है। लेकिन SchemaUpdate फिर से सभी विदेशी कुंजी बाधा उत्पन्न करता है।NHibernate SchemaUpdate फिर से मौजूदा विदेशी कुंजी जोड़ने?

उदाहरण के लिए मान लें कि आपके पास Student और Teacher है। StudentTeacher से ArtTeacher नाम के साथ सहयोग है। ArtTeacherStudent से Teacher से एक विदेशी कुंजी है। मान लें कि डेटाबेस अद्यतित है और वर्तमान में Student, Teacher और उनके विदेशी कुंजी संबंध धारण करता है। तो HBM और Database समकक्ष हैं। SchemaUpdate को कुछ भी नहीं करना चाहिए, लेकिन जब मैं इसकी जेनरेट की गई स्क्रिप्ट देखता हूं, तो वह उस विदेशी कुंजी को फिर से उत्पन्न करता है।

ऐसा क्यों होता है? क्या इससे बचने का कोई तरीका है?

+0

यह मुझे स्पष्ट नहीं है कि आपका क्या मतलब है, क्या आप एक उदाहरण दे सकते हैं? – UpTheCreek

+0

मेरा अद्यतन प्रश्न देखें। –

+0

मुझे यह भी मिल रहा है; मेरे पास एक मौजूदा विदेशी कुंजी रिश्ते है और नई स्कीमा अपडेट (कॉन्फ़िगरेशन) चल रहा है। निष्पादित करें (क्रिया, झूठी) इसे पुनर्जीवित करना चाहता है ... मैं यह नहीं समझ सकता कि मैं क्या गलत कर रहा हूं ... –

उत्तर

1

रहस्य यह सुनिश्चित करना है कि आप विदेशी कुंजी के लिए नाम निर्दिष्ट करें, या फिर NHibernate एक यादृच्छिक नाम उत्पन्न करेगा जो मौजूदा स्कीमा से मेल नहीं खाएगा।

(मैंने इस जवाब को अफशा के ब्लॉग पोस्ट के Google कैश से बाहर किया)।