Entity Framework десятичная проблема при вставке после публикации - PullRequest
0 голосов
/ 10 ноября 2018

У меня есть модель данных с именем Золото с десятичным свойством для цены золота, например:

public class Gold
{
  [key]
  public int GoldId { get; set; }
  public decimal RateValue { get; set; }
}

Я знаю, что десятичная точность и масштаб EF по умолчанию (18,2), и этого мне достаточно. Я не хочу его менять, и у меня нет проблем с вставкой десятичных значений на localhost. Но после публикации моего веб-сайта на хосте, когда я пытаюсь вставить десятичное число, например 1210.40, оно не вставляется или иногда вставляет 1210,00 (с неправильной шкалой) в БД без каких-либо ошибок!

Я полностью сбит с толку, потому что у меня нет этой проблемы при локальном запуске моего кода. Никаких проблем с десятичными, такими как 1210, без правых точек !!!

Это мой код для вставки десятичной дроби:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include="RateValue")]Gold manualPrices)
{
  Gold ons = new Gold() {RateValue=(decimal)manualPrices.RateValue,};
            db.GoldRepository.Insert(ons);
            db.Save();
}

Код бритвы:

@Html.EditorFor(model => model.RateValue, new { htmlAttributes = new { @class = "form-control" } })

подробнее: я использую MVC .Net Framework 4.5.2, сначала код, единица работы, MS SQL 2016.

1 Ответ

0 голосов
/ 10 ноября 2018

Благодаря @StephenMuecke и @ heuristican

Культура была изменена на персидскую культуру в глобальном масштабе. Это влияет на символ, используемый для десятичного разделителя от точки (.) До косой черты (/), поэтому десятичные дроби с точкой в ​​качестве разделителя даже не связываются.

Ничего не изменилось в коде. Просто введите десятичные числа, такие как 1210/40 вместо 1210.40 для вставки. Проблема решена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...