我對ADO .NET和MVC都很陌生,我試圖做一些簡單的事情,我編輯一個基本上代表工作報告的「DailyReport」。ASP .NET MVC與ADO .NET導致的問題?
這裏是我的相關負責人模式:
//
// GET: /DailyReport/Edit/5
public ActionResult Edit(int id, int weeklyReportID, int day)
{
WeeklyReport weeklyReport = (
from WeeklyReport wr in db.WeeklyReports
where wr.Id == weeklyReportID select wr)
.FirstOrDefault();
ViewBag.Week = weeklyReport.Week;
ViewBag.Day = day;
return View();
}
//
// POST: /DailyReport/Edit/5
[HttpPost]
public ActionResult Edit(DailyReport dailyReport, int weeklyReportID, int day)
{
if (ModelState.IsValid)
{
db.SaveChanges();
if (dailyReport == null)
{
dailyReport = new DailyReport();
dailyReport.StartTime = new TimeSpan(7, 0, 0);
dailyReport.EndTime = new TimeSpan(7 + 8, 0, 0);
dailyReport.Day = day;
db.DailyReports.AddObject(dailyReport);
db.SaveChanges();
}
WeeklyReport weeklyReport = (
from WeeklyReport wr in db.WeeklyReports
where wr.Id == weeklyReportID select wr)
.FirstOrDefault();
if (!weeklyReport.DailyReport.Any(dr => dr.Id == dailyReport.Id))
{
weeklyReport.DailyReport.Add(dailyReport);
}
dailyReport.WeeklyReport = weeklyReport;
db.SaveChanges();
return RedirectToAction("Edit",
"WeeklyReport",
new {
id = weeklyReportID,
week = weeklyReport.Week,
year = weeklyReport.Year
});
}
return View(dailyReport);
}
當我編輯工作的時間值,它不會得到保存。在HttpPost部分中,當我調試它時,對象確實發生了變化以反映這些更改,但調用db.SaveChanges()不會將其提交到數據庫。
編輯 「DB」 在這種情況下我的ADO .NET的背景下,以下方式聲明:
ActivesEntities db = new ActivesEntities();
ActivesEntities有這樣的聲明:
public partial class ActivesEntities : ObjectContext { ... }
BTW和非相關的問題,有控制器直接調用數據庫絕不是一個好主意......將你的代碼分成層:http://stackoverflow.com/問題/ 7510396 /業務層三層架構/ 7510526#7510526 – balexandre
我會在將來記住這一點。謝謝。 –
在這種情況下會是什麼? –