2012-04-16 28 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