2015-10-21 106 views
0

我正在使用實體框架6代碼第一種方法。我有3個模型類 用戶,國家和城市。我正在嘗試將用戶添加到數據庫,但無法完成。 這是我的用戶類。無法將數據添加到數據庫MVC 5代碼第一種方法

public class User 
    { 
     public int userId { get; set; } 
     public int cityId { get; set; } 
     public String firstName { get; set; } 
     public String lastName { get; set; } 
     public String gender { get; set; } 
     public String email { get; set; } 
     public String password { get; set; } 
     public String photo { get; set; } 
     public DateTime joinDate { get; set; } 

     //public City city { get; set; } 
     //public Country country { get; set; } 
     public virtual City city { get; set; } 
     private String FullName 
     { 
      get { return firstName + lastName; } 
     } 

    } 

控制方法

[HttpPost] 
    public ActionResult Register(User user) 
    { 

     User reg = new User() { 
      cityId = 2, 
      firstName = "U", 
      lastName = "v", 
      email = "[email protected]", 
      password = "123", 
      gender = "Male", 
      photo = "asd", 
     }; 

     try 
     { 
      db.Users.Add(reg); 
      db.SaveChanges(); 
      // TODO: Add insert logic here 

      return View("Index","Home"); 
     } 
     catch 
     { 
      return RedirectToAction("Index", "Home"); 
      // return View("Register", user); 
     } 
     // return View("Register", user); 
    } 

它去catch語句,並且不添加到數據庫中。

catch錯誤

Exception:Thrown: "An error occurred while updating the entries. See the inner exception for details." (System.Data.Entity.Core.UpdateException) 
A System.Data.Entity.Core.UpdateException was thrown: "An error occurred while updating the entries. See the inner exception for details." 
Time: 10/21/2015 5:25:41 PM 
Thread:Worker Thread[5576] 

enter image description here

+0

什麼是擦肩而過'Exception'? – ZwoRmi

+0

異常:引發:「更新條目時發生錯誤,請參閱內部異常以瞭解詳細信息。」 (System.Data.Entity.Core.UpdateException) 拋出System.Data.Entity.Core.UpdateException:「更新條目時發生錯誤。有關詳細信息,請參閱內部異常。 時間:10/21/2015 5:25:41 PM 主題:工作者主題[5576] – Umerm

+2

什麼是說內部異常..? – ZwoRmi

回答

1

由於DateTime是你需要使用的值類型Nullable<DateTime>(或DateTime?)當您不想設定,因爲a的DateTime.MinValue(默認值DateTime)不在許多Sql DB DateTime字段的可接受值的範圍內。

修復:

public class User 
{ 
    public int userId { get; set; } 
    public int cityId { get; set; } 
    public String firstName { get; set; } 
    public String lastName { get; set; } 
    public String gender { get; set; } 
    public String email { get; set; } 
    public String password { get; set; } 
    public String photo { get; set; } 
    public DateTime? joinDate { get; set; } 

    //public City city { get; set; } 
    //public Country country { get; set; } 
    public virtual City city { get; set; } 
    private String FullName 
    { 
     get { return firstName + lastName; } 
    } 
} 

級第二方案是將值分配給joinDate當您創建Person

+0

感謝您的回答。 Steve Greene的回答也很好。 – Umerm

相關問題