इसलिए, जैसा कि उल्लेख किया गया है, ट्रंक से धाराप्रवाह NHibernate का नवीनतम संस्करण प्राप्त करना मुझे वह स्थान मिला जहां मुझे होने की आवश्यकता थी। नवीनतम कोड के साथ एक एनम के लिए एक उदाहरण मैपिंग है:
Map(quote => quote.Status).CustomTypeIs(typeof(QuoteStatus));
कस्टम प्रकार इसे उपयोग करने के बजाय एनम के उदाहरण के रूप में नियंत्रित करने के लिए मजबूर करता है GenericEnumMapper<TEnum>
।
मैं वास्तव में एक थैली को बनाए रखने में सक्षम होने के लिए एक पैच को प्रस्तुत करने पर विचार कर रहा हूं जो एक स्ट्रिंग को बनाए रखता है और एक जो एक इंट को बनाए रखता है जो ऐसा लगता है जैसे आपको एक सम्मेलन के रूप में सेट करने में सक्षम होना चाहिए।
यह मेरी हाल की गतिविधि पर पॉप अप हुआ है और इस आसान को बनाने के लिए धाराप्रवाह NHibernate के नए संस्करणों में चीजें बदल गई हैं।
सभी एनमों को पूर्णांकों के रूप में मैप करने के लिए आप अब एक कन्वेंशन बना सकते हैं जैसे:
public class EnumConvention : IUserTypeConvention
{
public bool Accept(IProperty target)
{
return target.PropertyType.IsEnum;
}
public void Apply(IProperty target)
{
target.CustomTypeIs(target.PropertyType);
}
public bool Accept(Type type)
{
return type.IsEnum;
}
}
तब केवल आपकी मैपिंग होनी चाहिए:
Map(quote => quote.Status);
आप अपने धाराप्रवाह NHibernate मानचित्रण की तरह सम्मेलन को जोड़ते हैं;
Fluently.Configure(nHibConfig)
.Mappings(mappingConfiguration =>
{
mappingConfiguration.FluentMappings
.ConventionDiscovery.AddFromAssemblyOf<EnumConvention>();
})
.