我的表中有一个类型为DateTime的字段名称LastUpdated和一个类型为text的字段。我使用了以下代码:
TransactionLog lg = new TransactionLog();
lg.TransactionTypeId = 2;
**lg.Message** = "Beginning report run for: Obligor Registry ID733058723315465243 Requesting Organization Registry ID 731099717606760920 ";// msg;
// lg.LastUpdated = DateTime.Now;
context.TransactionLogs.Add(lg);
context.SaveChanges();
long referenceNumber = lg.ID;
return referenceNumber;我假设文本类型的列可以有无限的长文本值。但是当我尝试向消息中添加更多的文本时,我得到了错误。另外,数据库中的DateTime定义为not null,但指定了默认值GetDate()。如果我没有给LastUpdated列指定日期,我会得到错误:
The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value.
The statement has been terminated.请给我提个解决方案。
发布于 2011-05-28 23:21:51
文本类型列的大小取决于数据库中该列的定义。所以它不需要接受任何长度的文本。创建数据库的不同工具使用不同的默认值。
忽略日期时间列的默认值。一旦您指定您的属性在EF模型中不可为空,它将始终发送默认的.NET值1.1.0001。该值不能存储在SQL的DATETIME列中。必须在应用程序中填充此属性才能避免此错误。
https://stackoverflow.com/questions/6162314
复制相似问题