का उपयोग कर रहा इकाई मॉडल है जो मैं डेटाबेस के लिए हर बार जब मैं अनुप्रयोग चलाने लेकिन इस प्रकार डेटा को साफ़ करने के बिना मैं एक तरह से धाराप्रवाह NHibernate मैपिंग विधि के साथ SchemaUdpate
उपयोग कर रहा हूँ परिलक्षित होना चाहते हैं स्तंभ को बदलने के लिए कैसेnhibernate SchemaUpdate कार्यक्षमता
var config = Fluently.Configure().Database
(MsSqlConfiguration.MsSql2008.ConnectionString(connectionString));
//here I add mappings , apply conventions, build configuration, etc...
//
new SchemaUpdate(configuBuild).Execute(doUpdate: true, script: true);
तो मेरा इकाई मॉडल लगभग हर समय सही ढंग से अपडेट हो जाता है। समस्या जब मैं एक संपत्ति की परिभाषा को बदलने, देता है कि कहते हैं कि मैं इस तरह की संपत्ति थी
[CustomSqlType("nvarchar(400)")]
public virtual string Name { get; set; }
CustomSqlType
सिर्फ एक विशेषता है जो एक निश्चित प्रथा के अनुसार लागू किया जाएगा जब मैपिंग लोड किए गए हैं है। इस मामले में, नाम संपत्ति nvarchar(400)
फ़ील्ड के रूप में बनाई जाएगी। लेकिन अगर भविष्य में मैं इस
[CustomSqlType("nvarchar(500)")]
public virtual string Name { get; set; }
सही hbm.xml फ़ाइल से
को परिभाषा बदलने उत्पन्न होगा (सही साधन nvarchar (500)), लेकिन डेटाबेस में स्तंभ इवेंट को अपडेट नहीं किया गया है, हालांकि इस तरह के बदलने मान्य है डीबी परिप्रेक्ष्य से। क्या SchemaUpdate
का उपयोग कर नई लंबाई/सटीक/निरर्थक बाधा के साथ मौजूदा कॉलम को बदलने (मौजूदा स्क्रिप्ट को उत्पन्न करना) संभव है?
वह वास्तव में बदबू आ रही है। आपने अपनी स्कीमा पर अपडेट को मजबूर करने के लिए क्या किया? – Mithon
धन्यवाद! मैंने उम्र जानने में कोशिश की है कि यह मेरी डिफ़ॉल्ट बाधाओं को क्यों अपडेट नहीं कर रहा है! - क्या आप एक कामकाज खोजने के लिए प्रबंधन किया था? – Zack