将相同数据插入同一数据库中的两个不同表

时间:2016-12-14 20:46:27

标签: asp.net sql-server asp.net-mvc entity-framework visual-studio

好的,所以我在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和实体框架的新手。我过去几周一直在教自己,所以非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

你可以这样试试。

public ActionResult Edit([Bind(Include = "id,namee,no")] tbl_in staffing)
    {
        if (ModelState.IsValid)
        {
            staffing.namee ="Test";
            staffing.no = 1235467890;
            db.Entry(staffing).State = EntityState.Modified;
            db.SaveChanges();

            tbl_out t = new tbl_out();
            t.id = staffing.id;
            t.namee = staffing.namee;
            t.no = staffing.no;
            db.tbl_out.Add(t);
            db.SaveChanges();

        }
        return View(staffing);
    }