कोड फर्स्ट का उपयोग कर कक्षा में स्ट्रिंग को परिभाषित करते समय, जेनरेट किए गए डेटाबेस में कॉलम के लिए डिफ़ॉल्ट नल की अनुमति देता है।एंटीटी फ्रेमवर्क कोड द्वारा बनाए गए कॉलम में अन्य डेटा प्रकारों के विरुद्ध स्ट्रिंग्स के लिए शून्यता पहले
MyString (nvarchar (अधिकतम), नल)
मैं [Required]
विशेषता का उपयोग करके या .IsRequired का उपयोग करके यह करने के लिए "रिक्त नहीं" बदल सकते हैं:
public string MyString { get; set; }
इस स्तंभ बनाता है() विधि फ्लुएंट एपीआई में।
अन्य डेटा प्रकारों के लिए डिफ़ॉल्ट नल की अनुमति नहीं देता है।
मींट (पूर्णांक, रिक्त नहीं)
MyDateTime (दिनांक, रिक्त नहीं)
MyFloat (असली, रिक्त नहीं):
public int MyInt { get; set; }
public DateTime MyDateTime { get; set; }
public float MyFloat { get; set; }
public decimal MyDecimal { get; set; }
public bool MyBool { get; set; }
इन स्तंभों बनाता है
MyDecimal (दशमलव (18,2), नहीं अशक्त)
MyBool (बिट, रिक्त नहीं)
मैं धाराप्रवाह एपीआई में .IsOptional() विधि का उपयोग कर nulls अनुमति देने के लिए इन बदल सकते हैं । क्या कोई विशेषता है जो वही काम करेगी?
मैं कक्षा परिभाषा में डेटा प्रकारों को भी नल (int ?, डेटटाइम ?, इत्यादि) की अनुमति देने के लिए बदल सकता हूं जिसके परिणामस्वरूप कॉलम डेटाबेस में नल की अनुमति देते हैं।
स्ट्रिंग के लिए डिफ़ॉल्ट रूप से नल को अनुमति देने के लिए तर्क क्या है लेकिन अन्य डेटा प्रकारों के लिए नहीं?