IsRowVersion केवल बाइट सरणी गुणों के लिए कॉन्फ़िगर किया जा सकता है

मैंने हाल ही में NuGet अद्यतनकर्ता के माध्यम से EntityFramework 5 से 6 तक अपग्रेड किया है। सबकुछ ठीक से लग रहा था और मैंने अपना आवेदन बनाया और निष्पादित किया। जब मैंने डेटाबेस से पहली इकाई को पुनर्प्राप्त करने का प्रयास किया, तो मुझे यह त्रुटि मिली:

संपत्ति 'अपडेटेडडेट' एक बाइट सरणी नहीं है। IsRowVersion केवल कर सकते हैं   बाइट सरणी गुणों के लिए कॉन्फ़िगर किया जाना चाहिए।

यहां कोड का वह टुकड़ा है जिसका जिक्र है:

[Timestamp]
public virtual DateTime UpdatedDate { get; set; }

मैंने टाइमस्टैंप विशेषता को हटाने का प्रयास किया, लेकिन बिना किसी त्रुटि के एक ही त्रुटि मिली। मैं इसे कैसे ठीक करूं ताकि मैं अपना आवेदन ईएफ 6 के साथ चला सकूं?

5
मुझे समझ में नहीं आता तालिका कॉलम एक डेटाटाइम है और मॉडल संपत्ति पर एक टाइमस्टैम्प विशेषता है। यहां तक ​​कि यदि यह गलत है, तो मैं टाइमस्टैम्प विशेषता को हटाते समय भी वही त्रुटि संदेश क्यों प्राप्त करूं?
जोड़ा लेखक Sparafusile, स्रोत
बाहर निकलता है मेरे पास दूसरी कक्षा में टाइमस्टैंप विशेषता थी। त्रुटि संदेश इतना समान होना चाहिए था कि मैंने दूसरी कक्षा के संदर्भ को पहचाना नहीं था। धन्यवाद nemesv।
जोड़ा लेखक Sparafusile, स्रोत
आपका कोड गलत है। <कोड> ROWVERSION / TIMESTAMP एक बाइट सरणी है और इसमें समय के साथ कुछ भी नहीं है। technet.microsoft.com/en-us/library/ms182776.aspx
जोड़ा लेखक SLaks, स्रोत
क्या आप वाकई Timestamp विशेषता को हटाने के बाद अपने कोड को ठीक से साफ़ और पुनर्निर्मित कर चुके हैं? और आप अपने मॉडल कॉन्फ़िगरेशन में मैन्युअल रूप से IsRowVersion() को कॉल नहीं करते हैं? और कॉलम का प्रकार डेटाबेस में डेटाटाइम है और आप केवल पहले कोड का उपयोग कर रहे हैं?
जोड़ा लेखक nemesv, स्रोत
वास्तव में क्या स्लैक्स ने कहा। इसका नाम <कोड> टाइमस्टैम्प है बहुत इसके लिए भ्रामक है। दुर्भाग्य से यह EntityFramework पर ले जाया जाता है ...
जोड़ा लेखक user3038092, स्रोत

1 उत्तर

ईएफ में विशेषताएँ

यदि आप [टाइमस्टैम्प] विशेषता का उपयोग करते हैं, तो संपत्ति बाइट []
होनी चाहिए इसके बाद इसे SQL सर्वर में रोवर्सियन में मैप किया जाता है

If you want some other field type as a concurrency field. The use the attribute [ConcurrencyCheck]

10
जोड़ा
या फ्लुएंट एपीआई में: modelbuilder.Entity ()। संपत्ति (e => e.UpdatedDate) IsConcurrencyToken ();
जोड़ा लेखक Riva, स्रोत