C# 实体状态值不能为空
我有两个表orders和orderdetail,在orderdetail中有orderforeign键。我正在将ordertotal插入订单表和订单详细信息中的所有其他订单信息,但我收到了此错误。请帮助我,并告诉我硬件使用实体状态向外键表添加值 这是我的saveorder控制器函数C# 实体状态值不能为空,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我有两个表orders和orderdetail,在orderdetail中有orderforeign键。我正在将ordertotal插入订单表和订单详细信息中的所有其他订单信息,但我收到了此错误。请帮助我,并告诉我硬件使用实体状态向外键表添加值 这是我的saveorder控制器函数 [HttpPost] public ActionResult SaveOrder(FormCollection fc) { ResturantContext context = n
[HttpPost]
public ActionResult SaveOrder(FormCollection fc)
{
ResturantContext context = new ResturantContext();
ShoppingCart myCart = (ShoppingCart)Session[WebUtil.CART];
User u = (User)Session[WebUtil.USER];
Order order = new Order();
order.TotalAmount = myCart.TotalAmount;
new OrderHandler().AddOrder(order);
foreach (var m in myCart.Items)
{
OrderDetails od = new OrderDetails();
od.ID = m.Id;
od.Price =m.Price;
od.Product_name = m.Name;
od.Quantity = m.Quantity;
od.Address = fc["Address"];
od.City = fc["City"];
od.DateOfOrder = DateTime.Now;
od.UserName = u.FullName;
od.Email = u.Email;
od.ContactNo = fc["ContactNo"];
od.Country = fc["Country"];
new OrderHandler().AddOrderDetails(od);
}
Session.Remove(WebUtil.CART);
return RedirectToAction("Index","Home");
}
od.Order
将始终为Null
,因为您没有在代码中的任何位置设置它。在调用OrderHandler().AddOrderDetails(od)之前,至少在循环中尝试将其设置为od.Order=Order
代码>od.Order
是否有值,或者是否如异常情况所示为空?为什么要假设这与实体状态有关?检查异常的调用堆栈以查看实际引发异常的位置。我怀疑它在Entry()
方法中。在问题本身中发布完整的异常,包括调用堆栈。使用Exception.ToString()
od.order没有值,但我不知道如何使用实体状态将foreign keyvalue添加到表中。