我正在挑战自己做一个小型网上商店,但在我的数据库中存储订单时遇到了问题。
这是我的订单课程
[Key]
public int Id { get; set; }
public IEnumerable<BasketProduct> BasketProducts { get; set; }
public string UserName { get; set; }
哪个存储 BasketProducts(没有 int Id 它不想工作,但我不知道它为什么需要它)
public int Id { get; set; }
public Product Product { get; set; }
public int Quantity { get; set; }
在 BasketController 中,如果用户点击结帐,我想创建一个订单并将其放入数据库
public ActionResult CreateOrder()
{
//GetCurrentBasket returns a basket of current session
var baskItems = GetCurrentBasket().Items;
Order order = new Order { BasketProducts = baskItems, UserName = User.Identity.Name };
EFDbContext ent = new EFDbContext();
ent.Orders.Add(order);
ent.SaveChanges();
return RedirectToAction("Index", "Checkout", new { order = order });
}
在结帐 Index 方法中,它应该只接受 Order 对象并显示其中的所有产品
@model Domain.Elements.Order
//some code omitted
@foreach (var item in Model.BasketProducts)
{
<p>@item.Product.Name</p>
<p>@item.Quantity</p>
}
问题是在我的数据库中(在订单表中)它只创建了 ID 和用户名,所以我无法检索当前人订购的任何产品。
我做错了什么,或者我错过了一些使它起作用的东西?提前致谢。
编辑:这是我现在得到的错误。你调用的对象是空的。