2012-04-12 17 views
6

मैं एक सिस्टम के साथ काम कर रहा हूं जो पहले ईएफ कोड का उपयोग कर रहा है और मैं एक टेबल पर कई SQL सर्वर स्पैस कॉलम का उपयोग करना चाहता हूं। मेरा वर्तमान समाधान ईएफ द्वारा बनाई गई तालिका को छोड़ना है और डेटाबेस प्रारंभ के दौरान एक स्क्रिप्ट के माध्यम से फिर से जोड़ना है। क्या यह ऐसा कुछ है जिसे EntityType कॉन्फ़िगरेशन या अन्य माध्यमों से प्राप्त कक्षा में फ़्लुएंट एपीआई के साथ कॉन्फ़िगर किया जा सकता है?ईएफ कोड फर्स्ट फ्लुएंट एपीआई का उपयोग करते समय डेटाबेस कॉलम को "स्पैस" के रूप में कैसे सेट करें?

Sql("alter table TableName alter column ColumnName int sparse"); 

यहां तक ​​कि अगर आप माइग्रेशन का उपयोग नहीं करते, किसी भी एक:

+0

मैंने कोशिश नहीं की लेकिन यदि आप 'हैस कॉलम टाइप ("इंट स्पेस") का उपयोग करते हैं तो क्या होता है? –

+1

@ LadislavMrnka मैंने कोशिश की .सकॉलम टाइप ("इंट स्पेस") और यह '(182,6) फेंक दिया: त्रुटि 0040: टाइप इंट स्पेर्स नामस्थान या उपनाम के साथ योग्य नहीं है। योग्यता के बिना केवल आदिम प्रकारों का उपयोग किया जा सकता है। 'विचार के लिए धन्यवाद। – cResults

+0

अच्छा, इसका शायद मतलब है कि स्पैम कॉलम समर्थित नहीं हैं। –

उत्तर

3

आप इकाई फ़्रेमवर्क माइग्रेशन का उपयोग करते हैं, तो आप माइग्रेशन कि विरल कॉलम जोड़ने पर के लिए Up विधि में इस तरह की एक एसक्यूएल बयान जारी कर सकते हैं उसी SQL के साथ dbContext.Database.ExecuteSqlCommand का निष्पादन कार्य करेगा।

किसी भी तरह से अच्छा नहीं है जैसे कि आप ईएफ के माध्यम से प्रकार को स्पष्ट रूप से कॉन्फ़िगर कर सकते हैं, लेकिन वे पूरी तालिका को छोड़ने और बदलने से बेहतर हैं।