के साथ इंट के रूप में मानचित्र Enum मैंने अतीत में मानचित्र के लिए यह How do you map an enum as an int value with fluent NHibernate? उपयोग किया था, लेकिन मैंने हाल ही में NHibernate 3 में अपग्रेड किया है और यह अब और काम नहीं कर रहा है। मैंने अपने एनम कन्वेंशन क्लास में ब्रेकपॉइंट्स लगाए हैं और उन्हें हिट नहीं किया जा रहा है। डेटाबेस को मारने वाली क्वेरी में स्ट्रिंग के रूप में enum है जो डिफ़ॉल्ट कॉन्फ़िगरेशन है।Fluent NHibernate और NHibernate 3
यह NHibernate 3 के साथ कैसे काम करता है?
अद्यतन
यहाँ मैपिंग फ़ाइल की बात यह है कि उत्पन्न किया जाता है:
<property name="ComponentType" type="FluentNHibernate.Mapping.GenericEnumMapper`1[[...ComponentType, ..., Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], FluentNHibernate, Version=1.1.0.0, Culture=neutral, PublicKeyToken=8aa435e3cb308880">
<column name="ComponentTypeId" />
</property>
यह सही है कि यह एक GenericEnumMapper
का उपयोग करेंगे एक IUserTypeConvention
enums के लिए निर्दिष्ट किया जाता है जब प्रतीत नहीं होता।
यहाँ मेरी सम्मेलन है:
public class EnumConvention : IUserTypeConvention
{
public void Accept(IAcceptanceCriteria<IPropertyInspector> criteria)
{
criteria.Expect(e => e.Property.PropertyType.IsEnum);
}
public void Apply(IPropertyInstance instance)
{
instance.CustomType(instance.Property.PropertyType);
}
}
मैं वास्तव में नहीं देखता कि आप इस अभ्यास से बाहर निकलने के लिए क्या खड़े हैं लेकिन इसे किसी कारण से हटा दिया गया है क्योंकि उन्हें इसे – Baz1nga
के आसपास रखने की आवश्यकता मिलती है, मुझे कहीं भी यह नहीं पता कि यह दूर चला गया है, यह सिर्फ अब और काम नहीं कर रहा है। तब यह और कैसे किया जा सकता है? 'मानचित्र (...) करना। कस्टम टाइप() 'काम नहीं करता है। यह समस्या का कारण बनता है। मैं कस्टम IUserType करने का प्रयास करूंगा और देख सकता हूं कि यह अभी काम करता है या नहीं। –
मैं कह रहा हूं कि आपके पास enum की बजाय int के रूप में इसे संग्रहीत करने का कोई कारण है? Mem nt a prob के साथ मैं वास्तव में कोई कारण नहीं देखता .. स्ट्रिंग enums कोड सुरक्षित हैं .. – Baz1nga