问题描述
我有一个记录,其中在某个字段中包含一个数字:25.99
。每当我使用 Devart DotConnect 从我的 C# 代码中选择这条记录时,它都会返回 25.990000000000002
。因此,我的更新语句提示我这样的异常:Store update,insert,or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded. Refresh ObjectStateManager entries.
我的代码片段如下所示:
var busRoutes = (
from route in ctx.RMBUSROUTEs
select route
).ToArray();
foreach (var busRoute in busRoutes)
{
busRoute.LASTUPDDATE = DateTime.Now;
}
ctx.SaveChanges();
此表中只有 ~ 100 条记录。大多数记录在该字段中包含十进制数,而只有特定的特定记录总是将 25.99
检索为 25.990000000000002
。我确定存储在 DB 中的记录值是 25.99
。怎么来的?提前致谢。
解决方法
尝试将 LASTUPDDATE 的类型从 DateTime 更改为 string。我不知道为什么,但它对我有用。