2011-07-08 16 views
25

संभव डुप्लिकेट:
Entity Framework Code First: decimal precisionमैं EntityFramework 4.1 CodeFirst का उपयोग करके सहेजने पर दशमलव मानों को दो स्थानों पर छोटा करने से कैसे रोकूं?

मैं उपयोग कर रहा हूँ Linq करने वाली संस्थाओं EntityFramework 4.1 कोड पहले प्रणाली के साथ। मेरे सभी decimal गुणों को सहेजने पर दो दशमलव स्थानों तक काटा जा रहा है। मैं संशोधित वस्तु की जांच कर सकता हूं और डीबगर में देख सकता हूं जिसमें दशमलव स्थानों की सही संख्या है और मैं डेटाबेस में मूल्य को हार्ड कोड कर सकता हूं यह दिखाने के लिए कि यह दशमलव स्थानों की सही संख्या स्वीकार कर सकता है [इस मामले में, decimal(4,3) ]। लेकिन जब मैं मान को सहेजता हूं, तो यह इसे सही ढंग से सहेजता नहीं है, बल्कि इसके बजाय decimal मानों को दो दशमलव स्थानों पर छोटा करता है। मैं System.ComponentModel.DataAnnotations में एक कक्षा नहीं ढूंढ पा रहा हूं जो आपको सटीकता निर्दिष्ट करने की अनुमति देता है। वर्ग (स्वच्छ), संदर्भ के लिए है:

public class Metrics 
{ 
    public decimal? PPM { get; set; } 
} 

उत्तर

36
public class MyContext : DbContext 
{ 
    public DbSet<Metrics> Metrics { get; set; } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Entity<Metrics>().Property(x => x.PPM).HasPrecision(4, 3); 
    } 
} 
+0

हम कहाँ इस वर्ग को जोड़ने की आवश्यकता? – Ahmed

+0

यह ठीक तरीका मैंने पाया, @ अहमद आप इसे एप्लिकेशन डीबीकॉन्टेक्स्ट या उस संदर्भ में रख सकते हैं जिसका आप डेटाबेस मॉडल के लिए उपयोग कर रहे हैं – SAR