我正在努力为什么我DateTime
被错误地保存到我的数据库中.
我将值20/12/2015
(作为字符串)与格式()一起传递给它dd/MM/yyyy
并将其解析为a DateTime
但它始终保存到我的SQL Server数据库中06/12/2015
public ActionResult SaveSettings(ProjectPlan projectPlan) { projectPlan.StartDate = DateTime.ParseExact(projectPlan.ShortDateTime, projectPlan.DateFormat, null); //ShortDateTime is 20/12/2015, DateFormat is dd/MM/yyyy var plan = this._dc.ProjectPlans.Single(a => a.Id == projectPlan.Id); plan = projectPlan; this._dc.SaveChanges(); }
Darin Dimitr.. 6
嗯,你不是指更新StartDate
实体的属性然后将其保存回数据库:
public ActionResult SaveSettings(ProjectPlan projectPlan) { var plan = this._dc.ProjectPlans.Single(a => a.Id == projectPlan.Id); plan.StartDate = DateTime.ParseExact(projectPlan.ShortDateTime, projectPlan.DateFormat, null); this._dc.SaveChanges(); }
在这一行,你基本上杀死了EF所知道的每个上下文:
plan = projectPlan;
因此,如果您查看针对SQL数据库生成的实际SQL查询,您会注意到正好更新了0行.
嗯,你不是指更新StartDate
实体的属性然后将其保存回数据库:
public ActionResult SaveSettings(ProjectPlan projectPlan) { var plan = this._dc.ProjectPlans.Single(a => a.Id == projectPlan.Id); plan.StartDate = DateTime.ParseExact(projectPlan.ShortDateTime, projectPlan.DateFormat, null); this._dc.SaveChanges(); }
在这一行,你基本上杀死了EF所知道的每个上下文:
plan = projectPlan;
因此,如果您查看针对SQL数据库生成的实际SQL查询,您会注意到正好更新了0行.