异常: 指定的转换无效
今天做数据保存时,出现的一个小问题。根据以往编码的肌肉记忆,我觉得不应该这样。所以这个问题出现的很有价值,特记下,已备后期思考。
代码如下:
int recordId=0; var record = new LeaseCallRecords() { FormPhone = sourceTelphone, ToPhone = ToPhone, StartTime =DateTime.Now, CallPerson = user.TrueName, CallWay = count.IsUse, AddTime = DateTime.Now, Vision = vision, ReleaseId = releaseId, DataSource = (int)DataSourceEnum.App }; recordId=(int)this.Save<LeaseCallRecords>(record);
恰是对Save()保存返会的object对象,进行拆箱操作时,提示‘指定的转换无效’。固有的思维,和编写记忆告诉我,这里不会有任何问题的。如是我使用getType(),获取到Save()返回对象object的类型,结果是decimal对象,而我赋值的recordId是int类型,所以出现了‘指定的转换无效’
异常。后来想了一下,为什么是decimal,查看了一下持久化对象LeaseCallRecords的主键SeqId,定义成了decimal.所以在持久化对象完成后,返回生成的主键是,返回的是decimal类型。
`namespace SSS.HousingLease.Model.HousingLease.Entity {
public class LeaseCallRecords {
/// <summary>
/// 主键
/// </summary>
public virtual decimal SeqId { get; set; }`