2011-07-21 13 views
11

खोने वाली इकाई फ्रेमवर्क मैं एंटिटी एसक्यूएल का उपयोग करके अपने ईडीएम से पूछताछ कर रहा हूं और अपने डेटटाइम मानों पर मिलीसेकंड परिशुद्धता खो रहा हूं। उदाहरण के लिए 2011/7/20 12: 55: 15.333 अपराह्न को बदल दिया गया 2011/7/20 12: 55: 15.000 अपराह्न।एसक्यूएल डेटटाइम परिशुद्धता

मैंने पुष्टि की है कि SQL में मिलीसेकंड ठीक से रिकॉर्ड किए गए हैं।

, एक प्रेसिजन विशेषता मैं .edmx एक्सएमएल फ़ाइल में आवेदन कर सकते हैं, लेकिन मैं नहीं जानता कि मूल्यों किस तरह लेता है

 <Property Name="Timestamp" 
       Type="DateTime" 
       Nullable="false" 
       Precision="???" /> 

किसी को भी यह कैसे सटीक विशेषता का उपयोग करने पता है?

धन्यवाद।

उत्तर

8

यह एसक्यूएल सर्वर संस्करण पर निर्भर करता है ... देख http://seesharper.wordpress.com/2008/07/08/sql-server-datetime-vs-net-datetime-battle-of-accuracy/

यदि यह एसक्यूएल सर्वर 2008 परिवर्तन डीबी में डेटाप्रकार datetime2 और उसके बाद डीबी से मॉडल अपडेट किया जाए।

अन्यथा आप प्रेसिजन को 3 (आंशिक भाग के लिए 3 अंक, http://msdn.microsoft.com/en-us/library/cc716737.aspx देखें) सेट कर सकते हैं।

+0

यह SQL सर्वर 2008 एक्सप्रेस (R2) है। लेकिन मैं डेटाबेस नहीं बदल सकता क्योंकि यह मेरे प्रोजेक्ट से संबंधित नहीं है। क्या यह एकमात्र समाधान है? –

+0

आप 3 को "प्रेसिजन" में डाल सकते हैं ... लेकिन संपादन .edmx एक बुरा अभ्यास है! – Yahia

+0

ठीक है - धन्यवाद। प्रेसिजन "3" काम करता है, हालांकि मुझे EntitDataReader से .GetDateTime (int ordinal) फ़ंक्शन का उपयोग करने के लिए स्विच करना पड़ा था। –

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