7

StoreGeneratedPattern="Computed" में गणना दिनांक दिनांक कॉलम का उपयोग timestamp के कॉलम पर बेकार ढंग से काम करता है। लेकिन आप टाइमस्टैम्प को मानव-पठनीय रूप के रूप में प्रदर्शित नहीं कर सकते हैं।इकाई फ्रेमवर्क

तो आप उपयोगकर्ता को नहीं दिखा सकते हैं "यह पंक्ति {TimeStamp} पर संशोधित की गई थी" क्योंकि आप बस टाइमटाइम पर SQL टाइमस्टैम्प को पार्स नहीं कर सकते हैं।

अब मैं DateTime कॉलम के लिए गणना कॉलम भी बना सकता हूं इसलिए मुझे इसे मैन्युअल रूप से सेट करने की आवश्यकता नहीं है? myEntity.LastModification = DateTime.Now

नहीं उल्लेख करने के लिए यह काफी त्रुटि प्रवण होगा, अगर कुछ उपयोगकर्ता वास्तव में, कुछ बुरा करने के लिए बस अपने कंप्यूटर समय बदलकर चाहता था।

+0

ट्रिगर के बारे में क्या होगा, यदि आपका तकनीकी डेटाबेस पहले है? या यदि आप पहले कोड का उपयोग कर रहे हैं तो बचत पर विरासत और कस्टम कार्रवाई (लेकिन मुझे नहीं लगता कि आप करते हैं)। वैसे, क्या यह एक वेब ऐप है? यदि हां, डेटटाइम.अब आपका वेब सर्वर डेटाटाइम होगा, क्लाइंट का नहीं। –

+0

@ राफेल एल्थॉस यह एक डब्ल्यूपीएफ एप्लीकेशन है ... और मुझे लगता है कि एडीएमएक्स मॉडल के बगल में ट्रिगर बनाए रखना वास्तव में फैंसी नहीं है। तो मैं सिर्फ 'डेटटाइम.अब' को असाइन करने के साथ चिपकूँगा: पी – SeToY

+0

ठीक है। तो पहले मॉडल? क्या आपने इसे देखा: http://stackoverflow.com/questions/6029766/how-to-create-update-a-lastmodified-field-in-ef-code- पहला? यह पहले कोड है, लेकिन आप कोड जनरेटर को वांछित इंटरफेस को कार्यान्वित करने के लिए कोड जनरेटर बदल सकते हैं ... –

उत्तर

1

हाँ, के रूप में यहाँ वर्णित: Is there a way to specify default values for columns? Some DateTime columns in my database are set to getdate(), but the EF is unaware of these default values

निकालें:

... आप पहचान करने के लिए StoreGeneratedPattern सेट करते हैं (यदि मूल्य केवल डालने पर गणना की जाती है) या परिकलित (यह गणना की जाती है, तो हर अद्यतन पर), तो जब आप SaveChanges फोन एफई डेटाबेस में उत्पन्न मूल्य मिलेगा और इसे वापस लाने के अपने ऑब्जेक्ट अद्यतन करने के लिए ...

संपादित करें: डीबी सर्वर साइड Modifi बनाने के लिए cation date अपडेट किया गया, इस उत्तर का पालन करें https://stackoverflow.com/a/8461681/1679310Computed सेटिंग रीलोड

+0

ठीक है, मैंने यहां पूछने से पहले Google पर यह जांच की है, और मेरा डेटटाइम कॉलम 'कंप्यूटेड' पर सेट करने से यह नहीं बदलेगा सम्मिलित या अद्यतन करने पर कॉलम। – SeToY

+0

'पहचान' पर्याप्त नहीं है, क्योंकि अंतिम संशोधन (अच्छी तरह से ...) प्रत्येक संशोधन में बदलता है और न केवल डालने पर। – SeToY

+0

ओह, अब मैं देखता हूं, पहचान को निर्माण के लिए काम करना चाहिए (आप सही हैं), जैसा कि उपरोक्त लिंक दिखाता है, संशोधन के लिए, आपको उस तारीख को बदलने के लिए कुछ ट्रिगर की आवश्यकता होगी ... और फिर हां, 'गणना' को काम करना चाहिए –

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