DateTime未正确保存到我的数据库中

MyD*_*ons 0 c# sql-server datetime

我正在努力为什么我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();
}
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 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();
}
Run Code Online (Sandbox Code Playgroud)

在这一行,你基本上杀死了EF所知道的每个上下文:

plan = projectPlan;
Run Code Online (Sandbox Code Playgroud)

因此,如果您查看针对SQL数据库生成的实际SQL查询,您会注意到正好更新了0行.