向数据库中插入数据失败

问题描述

首先,我从会话中挑选数据。这些数据我试图转移到另一个模型。但我的第一个数据(会话)已成功上传数据库中。第一次数据传输成功。但是第二第三第四无论如何,那些数据不能转移我的模型。

这是我的代码

public async Task<IActionResult> Checkout(Order11 anorder) {
    List<Shop> shop = HttpContext.Session.Get<List<Shop>>("shop");

    for (int i = 0; i < shop.Count(); i++) {
        if (shop != null) {
            anorder.ProductName = shop[i].Name;
            anorder.ImagePath = shop[i].Image;
            anorder.Price = shop[i].Price;
            anorder.Quantity = shop[i].Quantity;

            anorder.OrderNo = GetorderNo();

            _db.Order11.Add(anorder);
        }

        _db.SaveChanges();
    }

    // other code
}

Order11.cs

  public class Order11
    {
        public int Id { get; set; }
        [display(Name = "Order Number")]
        public string OrderNo { get; set; }
        [required]
        public string Name { get; set; }
        [required]
        [display(Name = "Phone Number")]
        public string PhoneNo { get; set; }
        [required]
        [EmailAddress]
        public string Email { get; set; }
        [required]
        public string Address { get; set; }

        public DateTime OrderDate { get; set; }
        public string ImagePath { get; set; }

        public int Quantity { get; set; }

        public int Price { get; set; }
        public string ProductName { get; set; }

    }
}

当我运行应用程序时,我收到此错误

enter image description here

我想将所有会话数据传输到我的模型(DB)中。这个问题的解决方案是什么?我是初学者,请帮忙。

解决方法

请在保存数据前设置anOrder.Id = 0;

,

请使用 try、catch 显示内部异常。我无法评论。

public async Task<IActionResult> Checkout(Order11 anOrder)
{
List<Shop> shop = HttpContext.Session.Get<List<Shop>>("shop");

for (int i = 0; i < shop.Count(); i++)
{
    try
    {
    if (shop != null)
    {
        anOrder.ProductName = shop[i].Name;
        anOrder.ImagePath = shop[i].Image;
        anOrder.Price = shop[i].Price;
        anOrder.Quantity = shop[i].Quantity;

        anOrder.OrderNo = GetOrderNo();

        _db.Order11.Add(anOrder);
    }

    _db.SaveChanges();
    }
    catch(Exception ex)
    {
    }
}

// other code
}