VS中报错误如下所示:
The ‘AccountIdentity’ property on ‘T_TRACE’ could not be set to a ‘System.String’ value. You must set this property to a non-null value of type ‘System.Int64’.
翻译如下:
“TRACE”上的“AccountIdentity”属性无法设置为’System.String’类型。必须将此属性类型设置为“System.Int64”且不为空的值;(意思就是说VS中设置的属性类型为Int64,但是数据库中属性类型是string类型(Slserver中是varchar类型),两个地方的数据类型不一致导致的错误)
数据库表设计如下图所示:(表名:T_Trace)
下图是VS中的Model
执行如下代码:
return View(traceInfo.OrderByDescending(t => t.RequestDate).ThenByDescending(t => t.TraceKey).ToPagedList(page, pageSize));
VS报错截图如下图所示:
解决方法
原因:
Model中的字段类型和 数据库表 中的数据类型不对应。
Model中被定义成了long
,而数据库中的是varchar(128)对应的Model应该是string
类型.
解决方法:
数据库不动,则在VS中把下面的代码
public long AccountIdentity { get; set; }
改成
public string AccountIdentity { get; set; }