0
好吧,我在asp.net實體框架mvc項目中的同一個model.edmx中有兩個不同的表。第一張表是我設置更新的主表,並且沒有任何問題。第二張表是一張與第一張表完全相同的空表。第二張表將插入表1中的行以記錄更改以及誰隨時間進行了更改。在同一個數據庫中將相同的數據插入到兩個不同的表中
有沒有什麼辦法可以將表1中的數據建模並將其轉換爲表2的建模並插入該行?
當試圖從表2中引用表1時得到的錯誤是「無法將類型'Model1'隱式轉換爲'Model2'」。
這裏就是我試圖做到這一點的ActionResult:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "ID,ECode,EmpType,FTE,TeamName,ReportGroup,Include,GoalEdDol,GoalEdAcct,GoalCmDol,GoalCmAcct,Update_By,Update_Date")] Staffing staffing)
{
if (ModelState.IsValid)
{
staffing.Update_Date = DateTime.Now;
staffing.Update_By = Request.LogonUserIdentity.Name.Split('\\')[1];
db.Entry(staffing).State = EntityState.Modified;
db.SaveChanges();
Staffing_Hist staffing_hist = staffing;
// I would like to do similar to above but I have to convert staffing into a staffing_hist model
return RedirectToAction("Index");
}
return View(staffing);
}
我是新來asp.net和實體框架。過去幾周我一直在教我自己,所以任何幫助都非常感謝。
使用數據庫觸發器來代替它會更容易嗎? –
Staffing_Hist和Staffing被認爲是兩種不同的類型。 [Automapper](http://automapper.org/)非常適合這些類型的任務。代碼看起來像staffing_hist = Mapper.Map(人員配備);另一個選擇是向Staffing_Hist添加一個構造函數,該構造函數需要一個Staffing對象並手動映射它。 var staffing_hist = new Staffing_Hist(人員配置); –
謝謝你的建議。我一定會嘗試一下Automapper。 – cole570