[英]Foreign key is not setting automatically while adding new record in entity framework
我是實體框架的新手,我正在嘗試在表中添加一條具有外鍵約束的記錄。 我有兩個類,一個是用戶,另一個是 FileMovement。 Filemovement 將 userId 作為外鍵。 新記錄添加成功,但外鍵值仍為空。 誰能告訴我我在這里做錯了什么是我的代碼。
我的用戶類代碼
[Key]
public int User_ID { get; set; }
[Display(Name = " User Nmae: ")]
[Required(ErrorMessage = "User Name is required")]
public string User_Name { get; set; }
[Display(Name = " Password: ")]
[DataType(DataType.Password)]
[Required(ErrorMessage = "Password is required")]
public string Password { get; set; }
這是我的 fileMovement 類代碼
[Key]
public int file_Id { get; set; }
[ForeignKey("User")]
public int User_Id_fk { get; set; }
[Display(Name = " Diary No: ")]
[Required(ErrorMessage = "Diary No is required")]
public string Diary_No { get; set; }
[Display(Name = " Receive Date: ")]
[Required(ErrorMessage = "Please enter receive date")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> Receive_Date { get; set; }
[Display(Name = " Issued Diary No: ")]
public string Issued_Diary_No { get; set; }
[Display(Name = " Issue Date: ")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> Issue_Date { get; set; }
[Display(Name = " Office Name: ")]
public string Issued_Office { get; set; }
[Display(Name = " Subject: ")]
[Required(ErrorMessage = "Please enter subject")]
[DataType(DataType.MultilineText)]
public string Subject { get; set; }
[Display(Name = " DG(Rectt): ")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> DG_Rectt { get; set; }
[Display(Name = " ADG(Rectt): ")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> ADG_Rectt { get; set; }
[Display(Name = " DD(Rectt): ")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> DD_Rectt { get; set; }
[Display(Name = " AD(Rectt): ")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> AD_Rectt { get; set; }
[Display(Name = " Assistant: ")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> Assistant_Rectt { get; set; }
[Display(Name = " GM(HRD): ")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> GM_HRD { get; set; }
[Display(Name = " Send To: ")]
public string Send_To { get; set; }
[Display(Name = " Date: ")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> Date { get; set; }
[Display(Name = " Action: ")]
public string Action { get; set; }
[Display(Name = " Status: ")]
public string Status { get; set; }
這是我的 actionResult 方法代碼
public ActionResult NewFileToDiary(File_Movement fm)
{
if (ModelState.IsValid)
{
FileMovementManagementSystem.FileViewModel.FileViewModel fvm = new FileMovementManagementSystem.FileViewModel.FileViewModel();
fvm.SaveNewFileMovement(fm);
return RedirectToAction("UserDashBoard", "Home");
}
return View();
}
這是 SaveNewFileMOvement 方法
public void SaveNewFileMovement(File_Movement fm)
{
using (DiaryManagementSystemEntities db = new DiaryManagementSystemEntities())
{
db.File_Movement.Add(fm);
db.SaveChanges();
}
}
我在您的文件移動類中看不到任何用戶選擇。 您只保存文件移動對象。 嘗試在您的控制器代碼中明確設置 User Id 以查看所需的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.