【发布时间】:2021-08-28 18:38:21
【问题描述】:
我正在创建包含 OrderDetail 的订单。当我有一个包含许多产品的购物车时,我创建了一个订单,我希望将每个产品 ID 添加到 OrderDetail 中,包括 OrderID。
但目前,我只在添加到 OrderDetail 的第一个循环中获得 ProductID (OrderID)。当我调试时,循环仍然执行了足够多的 Product in Cart 但没有添加到 OrderDetail。
那么我在这里面临的问题是什么?
存储库
public bool CreateOrder(CartViewModel invoiceVM, string userId)
{
invoiceVM.Invoices.CreateAt = DateTime.Now;
_dbContext.Invoice.Add(invoiceVM.Invoices);
_dbContext.SaveChanges();
decimal orderTotal = 0;
var cartItems = GetCartItem(userId);
foreach (var item in cartItems)
{
var invoiceDetail = new InvoiceDetails
{
ProductId = item.Products.Id,
InvoiceId = invoiceVM.Invoices.Id,
Price = item.Products.Price * item.Quantity,
Quantity = item.Quantity,
};
orderTotal += (item.Quantity * item.Products.Price);
_dbContext.InvoiceDetails.Add(invoiceDetail);
}
invoiceVM.Invoices.OrderTotal = orderTotal;
_dbContext.SaveChanges();
return true;
}
【问题讨论】: