Подтвердить что ты не робот

Как предотвратить усечение десятичных значений до 2-х мест при сохранении с помощью EntityFramework 4.1 CodeFirst?

Возможный дубликат:
Код структуры Entity Сначала: десятичная точность

Я использую Linq-to-Entities с системой EntityFramework 4.1 Code First. Все мои свойства decimal усекаются до двух десятичных знаков при сохранении. Я могу проверить измененный объект и видеть в отладчике, имеющем правильное число десятичных знаков, и я могу жестко закодировать значение в базе данных, чтобы показать, что он может принимать правильное число десятичных знаков [в этом случае decimal(4,3)]. Но когда я сохраняю значение, он никогда не сохраняет его правильно, но вместо этого обрезает значения decimal до двух знаков после запятой. Мне не удалось найти класс в System.ComponentModel.DataAnnotations, который позволяет вам указать точность. Класс (санированный), для справки:

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

Ответ 1

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);
    }
}