Итак, у нас есть модель в ASP.net Core 2.0 MVC с использованием Entity Framework,
эта модель имеет десятичные поля.
[Display(Name = "Total Cost")]
public decimal TotalCost { get; set; }
[Display(Name = "Total Bill")]
public decimal TotalBill { get; set; }
Затем у нас есть другая пара свойств для валюты:
public CurrencyCode CostCurrency { get; set; }
public CurrencyCode BillCurrency { get; set; }
У меня есть возврат к отображаемой строке на основе валюты
public string TotalBillDisplay =>
CurrencyDisplayFormat(CostCurrencey, TotalBill);
public string TotalCostDisplay =>
CurrencyDisplayFormat(BillCurrencey, TotalCost);
private string CurrencyDisplayFormat(CurrencyCode currencyCode, decimal amount)
{
return currencyCode.PreSymbol
+ Math.Round(amount, currencyCode.DecimalDigits)
+ currencyCode.PostSymbol;
}
Это немного громоздко иметь 3 свойства для каждого денежного значения
1) десятичный
2) валюта
3) дисплей
Я знаю, что могу создать класс, в котором были бы все три, но тогда миграции Entity Framework не будут создавать десятичные столбцы для TotalCost
и TotalBill
. Им потребуется отношение к новому классу (сущности), создающему сложное отображение, которое кажется немного излишним.
Могу ли я сделать какой-нибудь атрибут?