2012-04-16 66 views
0

我试图从购物车添加订单列表。MVC3 db.SaveChanges()内部异常

我同样这样做的http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-9

db.saveChanges()有错误“,而更新条目中出现了错误。详情请看内部例外。'

当我看到订单时,orderId为'0'。这是否有问题?

我给你一些代码。

你能告诉我一些想法吗?

谢谢。

//Order.cs 
public class Order 
{ 
    rentalDB db = new rentalDB(); 

    [Key] public int orderId { get; set; } 
    public int customerId { get; set; } 
    public DateTime orderDate { get; set; } 
    public int rentalPeriod { get; set; } 
    public DateTime startDate { get; set; } 
    public decimal total { get; set; } 
    public virtual Customer Customer { get; set; } 
    public List<OrderDetails> OrderDetails { get; set; } 
} 

这里是控制器。

//AccountController.cs 

[Authorize] 
    public ActionResult Order() 
    { 
     var order = new Order(); 
     TryUpdateModel(order); 

     string customerName = User.Identity.Name; 
     if (customerName == "") 
     { 
      return RedirectToAction("LogOn", "Account"); 
     } 
     int customerId = (from a in db.Customer 
          where a.userName == customerName 
          select a.customerId).Single(); 
     order.customerId = customerId; 

     db.Order.Add(order); 
     //I added orderDate and startDate, then it is saving now. 
     order.orderDate = System.DateTime.Now; 
     order.startDate = System.DateTime.Now.AddDays(2); 
     db.SaveChanges(); 

     var cart = ShoppingCart.GetCart(this.HttpContext); 
     cart.CreateOrder(order); 


     return View(order); 
    } 
+1

内部例外说什么? – James 2012-04-16 18:25:00

回答

0

我的问题是我没有提到有关orderDate和startDate。

然后我有错误。

当我宣布日期时,它现在正在工作。

+0

应该注意的是,c#中的公共属性也应该被大写为最佳实践 – 2012-04-16 18:42:34