linq之插入
Test表字段 字段类型
Id uniqueidentifier
e589c decimal(16, 10)
Test表对应的实体类
namespace PSMS.Entity
{
/// <summary>
///
/// </summary>
[Table(Name = "test")]
public class ABC : EntityBase
{
Guid id = Guid.NewGuid();
/// <summary>
/// Id
/// </summary>
[Column(IsPrimaryKey = true, Name = "Id")]
public override Guid Id
{
get { return this.id; }
set { this.id = value; }
}
decimal _numField = 0;
/// <summary>
/// 津贴系数
/// </summary>
[Column(UpdateCheck = UpdateCheck.Never, Name ="e589c")]
public Decimal NumField
{
get { return this._numField; }
set { this._numField = value; }
}
}
}
创建实体类并复制
ABC new = new ABC();
new.Id = Guid.NewGuid();
new.NumField = 0.428561M;
用Linq的InsertOnSubmit, SubmitChanges方法插入新对象new后,数据库中e589c字段的值就变成了0.4285000000,而不是0.428561(如下)
Id e589c
6da50c86-947a-4a44-acb5-6165b612de16 0.4285000000
--------------------编程问答-------------------- decimal(16,10) _numField = 0.0;
--------------------编程问答-------------------- 顶一楼,要控制decimal的精度 --------------------编程问答-------------------- 不要纠结在decimal _numField = 0;
不小心写错了,应该是decimal _numField = 0.0M; --------------------编程问答-------------------- e589c decimal(16, 6) --------------------编程问答-------------------- 你数据库定义字段的时候,精度定了10位,更改为6位应该就没问题了 --------------------编程问答--------------------
精度改为了6位结果还是0.4285000000。不对呀! --------------------编程问答--------------------
精度改为了6位结果还是不对呀(0.428500)! --------------------编程问答--------------------
e589c decimal(7, 6)
这样试试. --------------------编程问答-------------------- 精度丢失
补充:.NET技术 , LINQ