【发布时间】:2019-09-04 22:49:20
【问题描述】:
我有一个操作和 2 个 SQL 表,我知道如何将记录输入到 1 个表中,但是对于第二个表,我想从表 1 中获取最后插入的 ID,并将其插入到其中一列的第二个表中。我已经完成了所有设置,但我的数据库保存无法正常工作。另外我不确定如何使用 scope_identity() 或获取最后一个 ID,我正在使用 EF 处理所有内容。
public ActionResult AddTimeSheet()
{
ViewBag.ProjectsSelect = new SelectList(
context.Projects.ToList(), "ProjectId", "ProjectName");
var uid = User.Identity.GetUserId();
ViewBag.CurrentId = uid;
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult AddTimeSheet(TimeSheetProjectsModel timeSheetModel)
{
try
{
if(timeSheetModel == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
//if (ModelState.IsValid)
//{
TimeSheetMaster masterModel = new TimeSheetMaster();
masterModel.FromDate = timeSheetModel.Proj1;
masterModel.ToDate = timeSheetModel.Proj1.AddDays(7);
/* NEED HRS 4 WEEK/END MONTH/NEW MONTH */
masterModel.TotalHours = timeSheetModel.ProjTotal1;
masterModel.UserId = User.Identity.GetUserId();
masterModel.DateCreated = DateTime.Now;
/* MONTH SUBMITTED */
masterModel.TimeSheetStatus = 1;
masterModel.Comment = timeSheetModel.ProjDesc1;
context.TimeSheetMaster.Add(masterModel);
var detailsModel = CreateTimeSheetDetails(masterModel, timeSheetModel);
context.TimeSheetDetails.Add(detailsModel);
context.SaveChanges();
TempData["SuccessMaster"] = "TimeSheetMaster Created Successfully";
TempData["SuccessDetails"] = "TimeSheetDetails Created Successfully";
return RedirectToAction("TimeSheetList", "TimeSheet");
//}
// TempData["Error"] = "TimeSheet Create Was Unsuccessful";
// return RedirectToAction("TimeSheetList", "TimeSheet");
}
catch (Exception ex)
{
Console.Write(ex.Message);
TempData["Error"] = "TimeSheet Create Was Unsuccessful";
return RedirectToAction("TimeSheetList", "TimeSheet");
}
}
【问题讨论】:
标签: c# entity-framework asp.net-mvc-5 identity