【发布时间】:2013-09-19 00:41:52
【问题描述】:
我创建了一条没有问题的新记录,但每当我更新模型时,即使日期没有更改,我也会收到“将表达式转换为数据类型日期时间的算术溢出错误 " 错误。
我已确认要更新的现有数据库记录中的日期有效。
即使没有更新日期字段,下面的代码 sn-p 也会失败。
var dbModule = db.Modules.FirstOrDefault(v => v.ModuleId == module.ModuleId);
dbModule.Name = module.Name;
//dbModule.Password = module.Password;
//dbModule.Colour = module.Colour;
//dbModule.Modified = module.Modified;
db.SaveChanges();
如果我查看跟踪,我会看到下面的命令,因此可以确定没有更新日期字段。
ADO.NET:Execute NonQuery "update [dbo].[Modules]
set [Name] = @0
where ([ModuleId] = @1)"
为了清楚起见,操作环境是:
- ASP.NET MVC 3
- .NET 4.5
- SQL Server 2012 (Express)
- 由数据库优先方法生成的模型,带有相应的 edmx。
- DateTime 模型字段在 SQL Server 中属于 DateTime 类型
我尝试使用 SQL Server Profiler,但它没有输出更新语句来查看确切的 SQL,所以我依赖上面提供的智能跟踪。
任何帮助将不胜感激。
【问题讨论】:
标签: c# asp.net sql-server entity-framework