2011-03-24 13 views
8

मैं जिस एप्लिकेशन में बिल्डिंग कर रहा हूं, मेरे पास एक विशिष्ट सटीकता और स्केल के साथ कई दशमलव फ़ील्ड हैं जिन्हें डेटाबेस से मैप करने की आवश्यकता है। मैं Precision() और Scale() तरीकों का उपयोग करके इस लक्ष्य को हासिल कर सकते हैं:मैं फ्लुएंट एनएचबेर्नेट में दशमलव के डिफ़ॉल्ट पैमाने और परिशुद्धता को कैसे बदल सकता हूं?

public class ClassAMap : ClassMap<ClassA> 
{ 
    public ClassAMap() 
    { 
     Map(x => x.Value).Precision(22).Scale(12); 
    } 
} 

वहाँ दशमलव के लिए डिफ़ॉल्ट परिशुद्धता और पैमाने को बदलने के लिए कोई तरीका है, तो मैं के लिए Precision() और Scale() के लिए कॉल को जोड़ने के लिए याद की जरूरत नहीं है हर दशमलव मैप किया गया?

उत्तर

13

आप एक संपत्ति सम्मेलन को परिभाषित कर सकते हैं। सामान्य विचार निम्नलिखित है। (परीक्षण नहीं किया गया)

public class DecimalConvention : IPropertyConvention 
    { 
     public void Apply(IPropertyInstance instance) 
     { 
      if (instance.Type == typeof(decimal) || instance.Name == "Value") //Set the condition based on your needs 
      { 
       instance.Precision(22).Scale(12);  
      } 
     } 
    } 

सुनिश्चित करें कि फ़्लुएंट कॉन्फ़िगर होने पर आप इस सम्मेलन को शामिल करते हैं।

+0

बहुत बढ़िया, यह वही है जो मैं ढूंढ रहा था। – JChristian

+0

मैं मौजूदा कॉलम को नए दशमलव परिशुद्धता और स्केल में कैसे बदल सकता हूं? यह समाधान मेरे लिए काम नहीं किया –

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