2010-11-13 13 views
7

जब इसईएफ के तहत डीबी डिफ़ॉल्ट मान कैसे सम्मिलित करें?

ContentContacts c2 = new ContentContacts(); 

c2.updated_user = c2.created_user = loggedUserId; 
c2.created_date = c2.updated_date = DateTime.UtcNow; 

db.ContentContacts.AddObject(c2); 

की तरह एक नया रिकॉर्ड जोड़ने मैं

Cannot insert the value NULL into column 'main_email_support', table 'SQL2008R2.dbo.ContentContacts'; column does not allow nulls. INSERT fails. The statement has been terminated.

हो रही है, लेकिन डेटाबेस में डिफ़ॉल्ट मान की तरह कोई रिक्त स्ट्रिंग है:

alt text

क्यों क्या मुझे ऐसी त्रुटि मिल रही है? नहीं करना चाहिए एफई कहते हैं कुछ की तरह:

"ohh, it's a null value, so let's add the column default value instead"

+0

क्या आपको AddObject लाइन में त्रुटि मिल रही है, या जब आप परिवर्तनों को सहेजते हैं? –

+0

जब मैं 'सेव चेंज' कहता हूं तो त्रुटि आग लगती है – balexandre

उत्तर

6

मैं एक छोटे से परीक्षण किया, किसी स्तंभ जिसका कोई डिफ़ॉल्ट मान था, लेकिन nulls की अनुमति नहीं दी के साथ एक मेज बनाया।

फिर इस एसक्यूएल कथन:

Msg 515, Level 16, State 2, Line 1
Cannot insert the value NULL into column 'TestText', table 'Test.dbo.Table_1'; column does not allow nulls. INSERT fails.

समस्या है कि यहाँ डालने सभी स्तंभों, यह भी मूलभूत मूल्यों के साथ उन लोगों को निर्दिष्ट करता है:

INSERT INTO [Test].[dbo].[Table_1] 
     ([TestText]) 
VALUES 
     (null) 

इस त्रुटि देता है। सम्मिलन कॉलम को शून्य मानों के साथ अद्यतन करने का प्रयास करता है।

  • अद्यतन एक दृश्य के माध्यम से तालिका, जो आपके सी # कोड में डिफ़ॉल्ट कॉलम
  • सेट डिफ़ॉल्ट मान शामिल नहीं है

एक डिफ़ॉल्ट मान है:

आप 2 विकल्प हैं व्यापार तर्क, इसलिए आपके आवेदन की व्यावसायिक परत में सेट होने का एक मामला है।

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