Automapper округление десятичной дроби / точность удаления - PullRequest
0 голосов
/ 13 февраля 2020

Я отображаю модель сущности на модель пользовательского интерфейса, однако после того, как сопоставление выполнено, несколько полей округляются в меньшую сторону. Все затронутые поля имеют одинаковый тип decimal? , при извлечении его из базы данных поле равно 8245,82, однако после сопоставления оно составляет 8245,00

public IActionResult View(Guid Id)
{
     try
     {
           DealEx entity = _dealService.Get(m => m.Id == Id);
           var model = _mapper.Map<DealUI>(entity);
           AddReferenceData(model);
           return PartialView("_deal", model);
       }
       catch (Exception ex)
       {
           this.ProcessException(ex, _logger);
           return View("Error");
        }
}

Я предполагаю, что это что-то внутри Automapper? Когда модель сущности извлекается, значение корректно, я затем отображаю его, и значение в модель теперь округляется в меньшую сторону.

Вероятно, стоит упомянуть, что DealUI наследует DealEx.

public class DealUI : DealEx
{
    public DealUI()
    {
    }

    // just some select lists in here , northing of interest to this 
}
public class DealEx
{
   public DealEx(){}

   public decimal? BillValue {get; set;}

   // obivously alot more in this model but it's a big ole model so copying  it all seems a bit pointless
}

Включая краткое отображение

 CreateMap<DealEx, DealUI>();
 CreateMap<DealUI, DealEx>();

Приветствия

1 Ответ

1 голос
/ 13 февраля 2020

Попробуйте это:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<NameOfEntity>()
                    .Property(p => p.NameOfProperty)
                    .HasPrecision(9, 4); // or whatever your schema specifies
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...