首先,我很抱歉提出了一个被问过很多次的问题,但没有一个解决方案适合我。
我写的是迄今为止简单的ASP MVC CRUD应用程序,试图找出N层架构,而且我的模型类中有DateTime和TimeSpan,在创建和对象并将其保存到DB时或多或少的工作,保存日期时间,保存时间跨度,删除工作,但当我去视图中编辑条目时,我注意到的第一件事是由于某些原因没有加载日期时间(默认为“mm / dd / yyyy“显示了”,但是时间跨度从DB正确加载,所以我手动更改日期,点击“保存”,当我在dbContext上调用SaveChanges()时,它会抛出异常
将datetime2数据类型转换为datetime数据类型 在超出范围的值
这对我来说真的很奇怪,因为创作有效,而编辑没有。
我尝试了很多东西:将数据库类型更改为datetime2,datetime,将时间字段更改为时间(2),到目前为止,我无法以任何方式使其工作。
答案 0 :(得分:0)
根据您的图片,当您尝试更新时,EF会尝试再插入一个空记录。
使用生成控制器窗口时,visual studio会生成编辑操作:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(Entity entity)
{
if (ModelState.IsValid)
{
db.Entry(entity).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(entity);
}
因此,我建议您更改_client.Update(@event);
_client.Entry(@event).State = EntityState.Modified;
_client.SaveChanges();