2017-08-11 104 views
-1

我正在研究ASP.net MVC ...我已經創建了數據庫,現在我正在使用下面的代碼在數據庫中使用View Model類插入數據。 但它在用戶表中爲db.savechanges()提供了實體驗證錯誤(如tbl _user)。請讓我知道我犯的錯誤。Asp.Net中的實體驗證錯誤MVC

代碼在DB

插入
public string RegisterStudent(RegisterationLoginViewModel svm) 
    { 
     tbl_User_Role usr_role = new tbl_User_Role 
     { 
      // UserRole_Id=svm.User_Role_id, 
      RoleName = svm.User_Role, 
      Dsecription=svm.Description, 
      OtherDetails=svm.OtherDetails, 
     }; 
     db.tbl_User_Role.Add(usr_role); 
     db.SaveChanges(); 

     tbl_User S_Up = new tbl_User 
     { 
      FullName = svm.Full_Name, 
      DOB = svm.Date_of_Birth, 
      Address = svm.Home_Address, 
      MobileNumber = svm.Mobile_Number1, 
      CNIC = svm.CNIC, 
      Country = svm.Country, 
      Provience = svm.Provience, 
      City = svm.City, 
      UserRole_Id = usr_role.UserRole_Id, 
      Gender = svm.Gender, 
      CreatedOn = DateTime.Now, 

     }; 
     db.tbl_User.Add(S_Up); 
     db.SaveChanges(); -->**Exception is thrown at this line** 
+0

包含錯誤。 – Fran

+0

完成先生!錯誤發生在代碼的最後一行 –

+1

需要查看錯誤本身,而不僅僅是「 - > **拋出異常**」堆棧跟蹤將會有所幫助。我對這個問題的第一個預感是fk約束。 – nurdyguy

回答

0

如果UserRole_Id模型tbl_User_Role不是自動生成的,然後寫這行代碼UserRole_Id = usr_role.UserRole_Idnull,因爲可能它是tbl_User表的外鍵。

此外,如果您已設置DatabaseGeneratedOption.Identity,則在保存usr_role後需要獲取它UserRole_Id,然後將其分配給UserRole_Id

最後重新檢查您的必填字段是否爲空,並且外鍵正在獲取值。