[EF]DbEntityValidationException

本文探讨了使用C#和Entity Framework进行商品模型的数据验证。通过示例代码展示了如何定义商品实体类,包括属性的验证规则,如商品名称的必填性和价格范围限制。同时,演示了在添加商品到数据库时如何捕获并处理验证错误。
    [Table("Product")]
    public partial class Product
    {
        [Key]
        public int Id { get; set; }
        [Required(ErrorMessage = "必须指定商品名称")]
        public string Name { get; set; }

        [Range(10, 500, ErrorMessage = "商品价格范围 10-500")]
        public int Price { get; set; }
        [Range(10, 500, ErrorMessage = "商品价格范围 10-500")]
        public int SPrice { get; set; }




        //[Required]
        //public string Name { get; set; }

        //[Range(10, 500)]
        //public int Price { get; set; }
        //[Range(10, 500)]
        //public int SPrice { get; set; }
    }
            using (var context = new KTStoreContext())
            {
                try
                {
                    Product product = new Product
                    {
                        //Name = "Entity Framework 精要",
                        //Price = 40,
                        //SPrice = -120


                        Name = null,
                        Price = -40,
                        SPrice = -120
                    };
                    context.Product.Add(product);
                    int count = context.SaveChanges();
                    Console.WriteLine("添加{0}项数据 !", count);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("\n错误信息:{0}\n", ex.Message);

                    if (ex is DbEntityValidationException)
                    {

                        foreach (var validationResult in ((DbEntityValidationException)ex).EntityValidationErrors)
                        {
                            foreach (var error in validationResult.ValidationErrors)
                            {
                                Console.WriteLine(" … {0}", error.ErrorMessage);
                            }
                        }
                    }

                    // override SaveChanges()
                    // Console.WriteLine(ex.Message);
                }
            }
            Console.ReadKey();

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厦门德仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值