tbleducation と tbleemployee の 2 つのテーブルがあります。tbleemployee テーブルには、employeeID、employeeName などのフィールドがあります。また、tbleducation には、Id、employeeID などのフィールドがあります。
tbleducation に挿入できるように、tbleemployee テーブルから employeeName を指定して employeeID を選択するドロップダウン リストを作成したいと考えています。私は次のようにコードを書きました:
モデル
public class UserModels
{
public string EmployeeName { get; set; }
public int EmployeeCode { get; set; }
public IEnumerable<SelectListItem> Employee { set; get; }
}
コントローラ
[HttpPost]
public ActionResult Education(FormCollection edu)
{
tblEmployee_Education education = new tblEmployee_Education();
education.EmployeeID = Convert.ToInt32(edu["EmployeeName"].ToString());
education.Duration = edu["Duration"].ToString();
education.Certificate = edu["Certificate"].ToString();
education.Country = edu["Country"].ToString();
education.SchoolName = edu["SchoolName"].ToString();
education.Major = edu["Major"].ToString();
education.SubDescript = edu["SubDescript"].ToString();
context.AddTotblEmployee_Education(education);
context.SaveChanges();
return View();
}
意見
<%= Html.DropDownListFor(x => x.EmployeeName, Model.Employee, "select EmployeeName")%>
挿入しようとすると、次のエラー メッセージが表示されました。
「INSERT ステートメントが FOREIGN KEY 制約 FK_tblEmployee_Education_tblEmployee_Employee と競合しました」。データベース「MP_DBS_old」、テーブル「dbo.tblEmployee_Employee」、列「コード」で競合が発生しました。ステートメントは終了されました。"
dropdownlist の値が文字列であり、データベースが整数 (employeeID) を必要とするため、このエラーが発生したことはわかっています。私は本当にそれを修正する方法がわかりません。誰でも私を助けてください!