2011-07-08 64 views
25

Duplicar posibles:
Entity Framework Code First: decimal precision¿Cómo evito que los valores decimales se trunquen en 2 lugares al guardar con EntityFramework 4.1 CodeFirst?

estoy usando LINQ-a-Entidades con el Código Primer sistema de ADO.NET Entity Framework 4.1. Todas mis propiedades decimal se truncan en dos lugares decimales al guardar. Puedo examinar el objeto que se está modificando y puedo ver en el depurador que tiene el número correcto de decimales y puedo codificar el valor en la base de datos para mostrar que puede aceptar el número correcto de decimales [en este caso, decimal(4,3) ] Pero cuando guardo el valor, nunca lo guarda correctamente, sino que trunca los valores decimal con dos decimales. No he podido encontrar una clase en System.ComponentModel.DataAnnotations que te permita especificar la precisión. La clase (desinfectados), para referencia es:

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

Respuesta

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

dónde tenemos que añadir esta clase? – Ahmed

+0

esta es la mejor manera que encontré, @Ahmed puede ubicarlo en ApplicationDbContext o en el contexto que está utilizando para los modelos de bases de datos – SAR

Cuestiones relacionadas