अद्यतन एक nullable DateTime क्षेत्र के रूप में अशक्त परिणाम में डिफ़ॉल्ट DateTime मान (0001-01-01 00:00:00.0000000)

0

सवाल

मैं का उपयोग कर रहा हूँ ASP.NET बॉयलरप्लेट MVC (नहीं मूल) टेम्पलेट में अपने परियोजना है, जो का उपयोग करता है EF6 के रूप में ORM. डेटाबेस है SQL सर्वर एक्सप्रेस ।

यहाँ मेरी इकाई वस्तु (अनदेखी गैर-संबंधित गुण):

public class Asset : AggregateRoot<long>
{
    [DataType(DataType.DateTime)]
    public DateTime? LastControlTime { get; set; }
}

जब मैं बनाने के लिए एक नए परिसंपत्ति, इस क्षेत्र उचित रूप से बनाया के रूप में अशक्त. तो, सब कुछ काम करता है के रूप में intented है । लेकिन जब मैं अद्यतन करने की कोशिश के साथ एक वस्तु के लिए एक सरल सेवा के लिए कॉल के लिए, यह शिकंजा ।

यहाँ की विधि के आवेदन में सेवा वर्ग:

public void ResetLastControlTime (EntityDto<long> input)
{
    var asset = Repository.Get(input.Id);
    asset.LastControlTime = default(DateTime?);
}

इस रीसेट करना चाहिए कि क्षेत्र के लिए नल. मैं भी करने की कोशिश की asset.LastControlTime = null;. लेकिन अंत में यह लिखा है "0001-01-01 00:00:00.0000000" करने के लिए कि फ़ील्ड डेटाबेस में है । मैं स्थानों के बहुत सारे में कोड है कि मैं नियंत्रण के लिए एक नल मान तो अब मैं था करने के लिए परिवर्तन के टन के पुराने फाइल या मैं कुछ रास्ता खोजने के लिए रीसेट है कि क्षेत्र के लिए बस नल.

मैं इसी तरह के सवालों की जाँच की है, लेकिन एक जवाब नहीं मिल. उन सभी के बारे में बताता है nullable DateTime, जो मैं पहले से ही है. में SQL server तालिका स्कीमा डेटा प्रकार है datetime2(7), तो मुझे लगता है कि सही भी है । ओह, और हटाने डेटा प्रकार एनोटेशन भी कुछ भी नहीं बदला.

तो क्या हूँ मैं यहाँ याद आ रही? मुझे क्या करना चाहिए की जांच करने के लिए मुद्दा मिल?

1

सबसे अच्छा जवाब

2

मुझे लगता है कि यदि सब और विफल रहता है, आप सरल कर सकते हैं अपने कोड के सबसे द्वारा फिर से लागू करने की संपत्ति:

public class Asset : AggregateRoot<long>
{
    public DateTime? _LastControlTime;
    [DataType(DataType.DateTime)]
    public DateTime? LastControlTime { 
      get {
        return _LastControlTime;
      }
      set {
        if (value == DateTime.MinValue) {
          _LastControlTime = null;
        } else {
          _LastControlTime = value;
        }
    }
}

यह नहीं सच में कटौती करने के लिए दिल की समस्या है, लेकिन आप प्रगति बदलने के लिए बिना अपने सभी == अशक्त और .HasValue पूरे कार्यक्रम है ।

2021-11-23 11:44:25

यह काम किया! तो यह लगता है समस्या है के बीच कहीं न कहीं भंडार और ORM बॉयलरप्लेट कोड परिवर्तित करने के लिए नल मान न्यूनतम करने के लिए datetime. मैं यह क्या है पता नहीं है, लेकिन मैं बहुत व्यस्त हूँ देखभाल करने के लिए अब ठीक है. तो, आपको बहुत बहुत धन्यवाद के लिए इस सरल उपाय है ।
Emre Can Serteli

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में