Ant*_*ney 22 asp.net-mvc datetime entity-framework
我有一个ASP.NET MVC应用程序,我正在编辑现有数据库以更新特定字段DateTime
.我的数据库有4个字段,其中两个是DateCreated和DateModified.当我尝试更新字段时,我想保持DateCreated时间相同,没有理由更新它的创建日期,并且我将DateModified时间更改为当前时间DateTime.Now
这是给定的代码,只是在我做错了什么的情况下.这是我第一次使用ASP.NET MVC,所以请温柔.我已经看到其他答案在哪里Context
被调用,但我找不到任何参考.当我运行应用程序时,我在标题中收到错误消息,并且contractEntity.SaveChanges()
是红色的.
public ActionResult Edit(Contract editContract) {
var contract = (from c in contractEntity.Contracts where c.Id == editContract.Id select c).First();
if (!ModelState.IsValid)
return View(contract);
// editContract.DateCreated = contract.DateCreated;
// editContract.DateModified = DateTime.Now;
contractEntity.ApplyCurrentValues(contract.EntityKey.EntitySetName, editContract);
contractEntity.SaveChanges();
return RedirectToAction("Index");
}
Run Code Online (Sandbox Code Playgroud)
请,任何帮助表示赞赏.谢谢.
Col*_*ith 38
对我来说,我有同样的问题,但问题是默认情况下,当我保存模型时,正在创建无效的DateTime.我有一个字段CreatedOn并没有将它设置为任何东西,这意味着值为01/01/0001这是一个无效的SQL DateTime.设置它摆脱了我的问题.
Ant*_*ney 19
阅读本网站后,我发现打开了我的数据库的.edmx文件并进行了更改:
<...Provider="System.Data.SqlClient" ProviderManifestToken="2008".../>
Run Code Online (Sandbox Code Playgroud)
至
<...Provider="System.Data.SqlClient" ProviderManifestToken="2005".../>
Run Code Online (Sandbox Code Playgroud)
这是可以接受的还是有更好的方法来解决这个错误?
Jam*_*egs 12
您也可以编辑模型(或在.edmx中的EF中),并StoreGeneratedPattern
为相关字段设置为Computed.这将导致它不将其保存到该字段,因为它由SQL服务器计算.
我有同样的错误,我发现如果你有一个带有DateTime Nullable字段的SQL 2008 DB,请不要将Null(Nothing)显式分配给代码中的字段,这将导致此错误,或者您可以更改所有DateTime字段到DateTime2.
归档时间: |
|
查看次数: |
36998 次 |
最近记录: |