ASP.NET MVC Update-Database команда Проверка сущности завершается неудачно при попытке вставить десятичное число с дробями - PullRequest
0 голосов
/ 12 мая 2018

Я действительно новичок в ASP.NET и столкнулся с проблемой здесь.Проблема довольно очевидна в названии, и я пытаюсь ее решить.Вот один из членов списка, который я пытаюсь добавить в базу данных:

new Product 
{
    Name = "Sleep Suit", 
    Description="For sleeping or general wear",
    Price=4.99m, 
    CategoryID=categories.Single( c => c.Name == "Clothes").ID 
}

Это класс продукта в папке моделей:

public partial class Product
    {
        public int ID { get; set; }

        [Required(ErrorMessage = "The product name cannot be blank.")]
        [StringLength(50, MinimumLength = 3, ErrorMessage = "Please enter a product name between 3 and 50 characters in length.")]
        [RegularExpression(@"^[a-zA-Z0-9'-'\s]*$", ErrorMessage = "Please enter a product name made up of letters and numbers only.")]
        public string Name { get; set; }

        [Required(ErrorMessage = "The product description cannot be blank.")]
        [StringLength(200, MinimumLength = 10, ErrorMessage = "Please enter a product description between 10 and 200 characters in length.")]
        [RegularExpression(@"^[,;a-zA-Z0-9'-'\s]*$", ErrorMessage = "Please enter a product description made up of letters and numbers only.")]
        [DataType(DataType.MultilineText)]
        public string Description { get; set; }

        [Required(ErrorMessage = "The price cannot be blank.")]
        [Range(0.10, 10000, ErrorMessage = "Please enter a price between 0.10 and 10000.00")]
        [DataType(DataType.Currency)]
        [DisplayFormat(DataFormatString = "{0:c}")]
        [RegularExpression("^[0-9]+(\\.[0-9][0-9])?$", ErrorMessage = "The price must be a number up to two decimal places")]
        public decimal Price { get; set; }

        public int? CategoryID { get; set; }

        public virtual Category Category { get; set; }

        public virtual ICollection<ProductImageMapping> ProductImageMappings { get; set; }
    }

Когда я пытаюсь запуститьПри использовании метода seed с помощью Update-Database в консоли диспетчера пакетов я получаю эту ошибку.

System.Data.Entity.Validation.DbEntityValidationException: проверка не удалась для одного или нескольких объектов.См. Свойство EntityValidationErrors для получения более подробной информации.

И вот эта деталь:

BabyStore.Models.Product не прошел проверку - Цена: цена должна быть числомс точностью до двух десятичных знаков

Очевидно, что при проверке выражения регулярного выражения "Price" происходит сбой, но я не ввожу что-то, что не выполнит это выражение.Как вы видите, цена объявлена ​​как 4.99m, которая имеет 2 знака после запятой.Что я должен сделать, чтобы это исправить?Я турок, поэтому мы используем запятую вместо точки при разделении десятичных знаков, так что это может быть проблемой, но я не знаю.

Любое мнение приветствуется, спасибо.

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