将 Linq 中的参数类型更改为 Sql 并发检查
Change Parameter Type in Linq to Sql concurrency check
我从 https://msdn.microsoft.com/en-us/library/bb386947(v=vs.110).aspx 了解到,Linq-to-Sql 会将 .Net 框架中的小数类型转换为 sql decimal(29, 4)
。我在 Linq-to-Sql 的并发检查的 sql 日志中看到了这种行为。问题是我的小数点有 5 位精度。在这种情况下,Linq to sql 将 10.55465
转换为 10.5547
,然后抛出 Row not found or changed
错误。
我可以强制 linq-to-sql 使用自定义类型映射进行十进制到 sql 十进制的转换吗?对于并发参数类型,即使是 decimal(29,5)
我也会非常满意。
PS:我知道我可以关闭所有高精度小数的更新检查以防止错误发生,但我更愿意保留并发检查。
我想通了为什么在尝试设置一个简单示例时会出现此错误。我正在生成我的 dbml 代码,但列上没有 dbtype 属性。
我从 https://msdn.microsoft.com/en-us/library/bb386947(v=vs.110).aspx 了解到,Linq-to-Sql 会将 .Net 框架中的小数类型转换为 sql decimal(29, 4)
。我在 Linq-to-Sql 的并发检查的 sql 日志中看到了这种行为。问题是我的小数点有 5 位精度。在这种情况下,Linq to sql 将 10.55465
转换为 10.5547
,然后抛出 Row not found or changed
错误。
我可以强制 linq-to-sql 使用自定义类型映射进行十进制到 sql 十进制的转换吗?对于并发参数类型,即使是 decimal(29,5)
我也会非常满意。
PS:我知道我可以关闭所有高精度小数的更新检查以防止错误发生,但我更愿意保留并发检查。
我想通了为什么在尝试设置一个简单示例时会出现此错误。我正在生成我的 dbml 代码,但列上没有 dbtype 属性。