Как предотвратить усечение десятичных значений до 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; }
}
Ответы
Ответ 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);
}
}