C# 实体状态值不能为空

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

我有两个表orders和orderdetail,在orderdetail中有orderforeign键。我正在将ordertotal插入订单表和订单详细信息中的所有其他订单信息,但我收到了此错误。请帮助我,并告诉我硬件使用实体状态向外键表添加值

这是我的saveorder控制器函数

[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添加到表中。