2009-02-27 12 views
15

मुझे एनएचबीर्नेट 2 के साथ ब्रेकिंग बदलावों में से एक पता है। * यह है कि NHibernate.Nullables अब समर्थित नहीं हैं। इसलिए, आप अपनी मैपिंग फ़ाइल में निरर्थक डेटटाइम को मैप करने के लिए क्या उपयोग करते हैं? प्रकार? यानी के लिए .:एनएचबेर्नेट 2. * मैपिंग फाइलें: कैसे नामुमकिन डेटटाइम प्रकार (डेटटाइम?) को परिभाषित करने के लिए?

जाहिर है काम नहीं करता है:

<property name="CreateDate" column="CreateDate" type="DateTime?" not-null="false" /> 

और अब समर्थित नहीं:

<property name="ModifiedDate" column="ModifiedDate" type="Nullables.NHibernate.NullableDateTimeType, Nullables.NHibernate" not-null="false"/> 

मैं जानता हूँ कि यह बहुत स्पष्ट होना चाहिए, लेकिन मैं इसे नहीं मिल रहा हूँ!

उत्तर उतना आसान है जितना: NHibernate प्रश्न में वर्ग पर प्रतिबिंबित होगा और पता चलता है कि संपत्ति का परिलक्षित प्रकार डेटटाइम है? सब अपने ही पर।

धन्यवाद @ जस्टिस!

उत्तर

28
<property name="CreatedDate" /> 
  • NHibernate प्रश्न में वर्ग से अधिक प्रतिबिंबित और पता चलता है कि संपत्ति के प्रकार परिलक्षित अपने आप ही DateTime? सब है जाएगा।
  • NHibernate मान लेगा कि कॉलम नाम डिफ़ॉल्ट रूप से संपत्ति नाम के समान ही है, जब तक आप इसे अन्यथा नहीं बताते।
  • एनएचबेर्नेट यह मान लेगा कि कोई भी संपत्ति शून्य (not-null="false") है जब तक कि आप इसे अन्यथा नहीं बताते।

तुम सच में चाहते हैं, यह कुछ की तरह होना चाहिए ...

<property name="CreatedDate" type="System.Nullable`1[[System.DateTime, mscorlib]], mscorlib" /> 
+0

बहुत धन्यवाद। मुझे नंबर दो और तीन पता है, लेकिन विश्वास नहीं कर सकता कि मैंने पहले कभी नहीं देखा - वह सरल, आह? – Ted

+0

एफडब्ल्यूआईडब्ल्यू, मैपिंग विशेषताओं जैसे कुछ का उपयोग करके यह एक बहुत आसान है, जहां यह केवल '[संपत्ति (नाम = "बनाया गया दिनांक", टाइपटाइप = टाइपऑफ (डेटटाइम?))] ' –

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