मैट सही रास्ते पर सबसे अधिक संभावना है। आपने अपने कॉलम के लिए एक डिफ़ॉल्ट मान परिभाषित किया है - हालांकि, यह तभी प्रभावी होगा जब आप वास्तव में डेटाबेस में अपनी तालिका में कुछ सम्मिलित करेंगे।
जब आप एक इकाई परीक्षण करते हैं, जैसा कि आप कहते हैं, आप संभवतः डेटटाइम वैरिएबल को किसी चीज़ में प्रारंभ करते हैं (या नहीं - तो यह डेटटाइम होगा। मिनवैल्यू, जो 01/01/0001 है) और फिर आप उसे SQL सर्वर पर भेजते हैं और यह मान SQL सर्वर पर DATETIME के लिए मान्य सीमा से बाहर है (जैसा कि त्रुटि स्पष्ट रूप से बताती है)।
तो आपको डेटटाइम वैरिएबल को "DateTime.Today" में इनिशियलाइज़ करने के लिए अपने .NET यूनिट टेस्ट में एक लाइन जोड़ने की जरूरत है:
DateTime myDateTime = DateTime.Today
और फिर उसे SQL सर्वर में डालें।
या:आप अपना SQL INSERT कथन बदल सकते हैं ताकि यह उस कॉलम के लिए कोई मान सम्मिलित न करे - यह अभी जैसा दिखता है, यह ऐसा करता है (और इसे सम्मिलित करने का प्रयास करता है - SQL सर्वर के लिए - तालिका में अमान्य तिथि)। यदि आप अपने INSERT में उस कॉलम को निर्दिष्ट नहीं करते हैं, तो getdate()
का कॉलम डिफ़ॉल्ट है कॉलम में आज की तारीख को सम्मिलित करेगा और सम्मिलित करेगा।
मार्क