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