2012-05-21 8 views
7

हमने एंटीटी फ्रेमवर्क के 4.3.x संस्करण के रिलीज के बाद से ~ 80 माइग्रेशन उत्पन्न किए हैं। प्रत्येक बार जब हम एक नया माइग्रेशन उत्पन्न करते हैं, तो ईएफ माइग्रेशन मेटाडेटा के लिए वर्तमान मॉडल का एक स्नैपशॉट देता है। लक्ष्य संपत्ति।ईएफ 4.3.1 IMigrationMetadata.Target तारों का कारण बन रहा है "अधिक उपयोगकर्ता स्ट्रिंग बनाने के लिए कोई लॉजिकल स्पेस नहीं छोड़ा गया।" संकलन त्रुटियों

चूंकि प्रत्येक माइग्रेशन हमारी असेंबली में ~ 135k वर्ण जोड़ रहा है, इसलिए हम महत्वपूर्ण द्रव्यमान को हिट करना शुरू कर रहे हैं। अब हम "अधिक उपयोगकर्ता स्ट्रिंग बनाने के लिए कोई लॉजिकल स्पेस नहीं छोड़े हैं।" कंपाइलर त्रुटि। उस w/pre-compile दृश्यों को संयोजित करें, और आपके पास बहुत सारे स्ट्रिंग हैं।

एक जटिल मॉडल के साथ ईएफ माइग्रेशन का उपयोग करने के लिए सबसे अच्छा दीर्घकालिक दृष्टिकोण क्या है?

शायद एड-माइग्रेशन इन डब्ल्यू/संसाधन फ़ाइलों को उत्पन्न करना चाहिए।

उत्तर

1

इसकी रिपोर्ट करने के लिए धन्यवाद। मैंने इस मुद्दे को ईएफ 6 के लिए हमारे बैकलॉग में जोड़ा है।

अभी के लिए, एक संसाधन लुकअप के साथ स्ट्रिंग को प्रतिस्थापित करना सबसे अच्छा कामकाज है जिसे मैं सोच सकता हूं।

+0

आपकी मदद एंड्रयू के लिए धन्यवाद। – NATO24

+0

नोट- इसे अब ईएफ 5 के रूप में तय किया गया है: http://entityframework.codeplex.com/workitem/289 – automagic

2

हमारे पास एक ही समस्या थी। हम जनरेटेड स्ट्रिंग को संसाधन में ले जाने के द्वारा भी इसे ठीक कर रहे हैं:

public sealed partial class RegionalCenterRenameClass : IMigrationMetadata 
{ 
    // Skipped code 

    string IMigrationMetadata.Target 
    { 
    get { return Targets.M201207110918331_RegionalCenterRenameClass; } 
    } 
} 

जहां लक्ष्य - संसाधन फ़ाइल (resx) है।

+0

धन्यवाद! महान काम किया। – RaoulRubin

संबंधित मुद्दे

 संबंधित मुद्दे