आप UserType
लिख सकते हैं। लाभ यह है कि आप आसानी से विभिन्न प्रकार के दशमलव को अलग कर सकते हैं (आप शायद सभी दशमलव के लिए समान सटीकता नहीं चाहते हैं)।
Property(
x => x.Dollars,
m => m.Type<MoneyUserType>()
);
आप सभी मौद्रिक गुण में इस डाल करने के लिए कुछ प्रयास किया है, लेकिन है तो आप एक अधिक पठनीय और आत्म वर्णनात्मक मानचित्रण परिभाषा नहीं है।
ऐसा ही एक समाधान (वाक्य रचना), लेकिन लागू करने के लिए आसान है, एक विस्तार विधि जो सटीक सेट लिखने के लिए है।
Property(
x => x.Dollars,
m => m.MapMoney()
);
public static void MapMoney(this IPropertyMapper mapper)
{
m.Precision(9);
m.Scale(6);
}
यहां वही है: यह मैपिंग परिभाषा को और अधिक वर्णनात्मक बनाता है।
(हाँ मुझे पता है कि आप सभी फाइलों को बदलना नहीं चाहते हैं, लेकिन मैं अभी भी की सिफारिश करता हूं ताकि यह जानकारी मैपिंग फाइलों में रख सके, क्योंकि यह वास्तव में दशमलव है कि यह वास्तव में क्या है। यह बहुत आसान है सभी धन संपत्तियों के लिए मानचित्रण बदलने के लिए है, लेकिन राशि गुण रहते हैं। पूरी तरह से निहित समाधान के लिए, पर पढ़ें।)
वैकल्पिक रूप से आप मैपिंग इस्तेमाल कर सकते हैं। ये बहुत शक्तिशाली है। आप अभी भी मैपिंग फ़ाइल में सटीकता ओवरराइट कर सकते हैं, जो बहुत लचीलापन प्रदान करता है।
mapper.BeforeMapProperty += MapperOnBeforeMapProperty;
private void MapperOnBeforeMapProperty(
IModelInspector modelInspector,
PropertyPath member,
IPropertyMapper propertyCustomizer)
{
Type propertyType;
// requires some more condition to check if it is a property mapping or field mapping
propertyType = (PropertyInfo)member.LocalMember.PropertyType;
if (propertyType == typeof(decimal))
{
propertyCustomizer.Precision(9);
propertyCustomizer.Scale(6);
}
}
यह भी एक डिफ़ॉल्ट के रूप में, मानचित्रण सम्मेलन में उपयोगकर्ता प्रकार डाल करने के लिए संभव है।
स्रोत
2013-04-11 12:26:04
मैं नहीं बल्कि चाहूंगा। कुछ दर्जन वर्ग मैप किए गए हैं, और फ्लुएंट पर बदलने से मेरे दशमलव को फिर से मैप करना आसान होगा। हालांकि धन्यवाद। –