!!! कृपया this article पर रीडायरेक्ट न करें, क्योंकि यह नीचे वर्णित समस्या का समाधान नहीं करता है।LINQ2SQL: अज्ञात इकाइयों को लोड करते समय फ़ील्ड मानों को कैसे संशोधित करें?
मान लीजिए कि हम डेटाबेस में टेबल करते हैं:
SomeTable
- आईडी (int)
- डीटी (दिनांक)
हम एक Linq2Sql डेटा कॉन्फ़िगर किया है संदर्भ। और हमने कुछटेबल के लिए एक इकाई कॉन्फ़िगर की है: ऑनलोडेड विधि डीटी को इस तरह से संशोधित करती है कि डीटी की डेटटाइमकिंड यूटीसी बन जाती है (शुरुआत में यह निर्दिष्ट नहीं है)।
हम पूरी इकाई का उपयोग करके डेटा अनुरोध करते हैं, onLoaded विधि कहा जाता है::
अब यहाँ समस्या यह है
From x In ourDataContext.SomeTable Select x
लेकिन हम तालिका का ही हिस्सा अनुरोध (और इसलिए एक गुमनाम उत्पन्न प्रकार), onLoaded नहीं बुलाया जाता है:
From x In ourDataContext.SomeTable Select x.DT
यह स्पष्ट है कि onLoaded SomeTable इकाई में परिभाषित किया गया है, और अनाम प्रकार में नहीं।
फिलहाल मैं कस्टम संस्थाएं बनाने पर विचार करता हूं जो अनाम प्रकारों को प्रतिस्थापित करेंगे। लेकिन शायद किसी के पास बेहतर समाधान है?
from x in ourDataContext.SomeTable
select DateTime.SpecifyKind(x.DT, DateTimeKind.Utc)
आप इस अक्सर कर रही होगी, तो एक विस्तार विधि यह कम वर्बोज़ कर मदद कर सकता है:
मुझे लगता है कि अब के लिए एकमात्र तरीका है ...: / – Dima