के रूप में बाइट का उपयोग करके मैं एंटीटी फ्रेमवर्क कोड-प्रथम का उपयोग कर रहा हूं। मेरे पास एक सारणी है जो 100 पंक्तियों से अधिक नहीं होगी और मैं प्राथमिक कुंजी के रूप में डेटाटाइप byte
(tinyint
SQL सर्वर में) का उपयोग करना चाहूंगा। यह पहचान विनिर्देश संपत्ति है कि डालने पर ऑटो वेतन वृद्धि के लिए पंक्तियों की अनुमति देता है की स्थापना नहीं है जब इकाई की रूपरेखा डेटाबेस बनाताप्राथमिक कुंजी डेटाटाइप
[Key]
public byte Id { get; set; }
मुद्दा है,:
यह वही है मैं अब तक है।
यदि मैं डेटाटाइप को Int16
(smallint
SQL सर्वर में बदलता हूं) सब कुछ पूरी तरह से काम करता है।
ऑटो वृद्धि वृद्धि सेट करने के लिए एंटीटी फ्रेमवर्क को बताने का कोई तरीका है या क्या बाइट एंटिटी फ्रेमवर्क कोड-प्रथम के साथ प्राथमिक कुंजी के रूप में उपयोग नहीं किया जा सकता है?
आप इस तरह अपने डेटाबेस को क्यों प्रतिबंधित करेंगे? यदि यह केवल कुछ पंक्तियां हैं, तो अतिरिक्त स्थान चोट नहीं पहुंचाता है। – delnan
@ डेलनान, हाँ सही, इसे एक वर्कर (100) ** ';-)' ** क्यों न बनाएं। आपको हमेशा सबसे अधिक प्रतिबंधित डेटा-प्रकार उपलब्ध होना चाहिए, खासकर पीके के लिए। यदि आप इस पीके को 50 मिलियन पंक्तियों वाली तालिका में एफके के रूप में उपयोग करते हैं और उस पर एक इंडेक्स जोड़ते हैं, तो एक अंतर होगा। कॉलम आकार डिस्क स्थान से अधिक प्रभावित करता है, बस कैश मेमोरी के बारे में सोचें और आप कितनी छोटी डेटा-प्रकार चयन त्रुटि के लिए अपशिष्ट करते हैं। साथ ही, यदि आपका एप्लिकेशन बाहर निकलता है और बाहर या श्रेणी मान डालने का प्रयास करता है, तो यह असफल हो जाएगा। –