首页 / 知识

LINQ to SQL从金钱到两倍的映射

2023-04-12 12:36:00

LINQ to SQL从金钱到两倍的映射

LINQ to SQL Mapping From Money to Double

我第一次使用LINQ,想在SQL中具有money类型但我的域对象属性为double类型时,使Mapping正常工作。如何在XML文件或代码中表达这一点,以使映射不会引发通常的"无效的强制转换"异常?


稍微偏离主题,但这是在SQLServer中使用Money类型时每个人都应该知道的事情。

您不想使用双精度字符,而您想使用十进制。

双精度数是一个长浮点数,不应将浮点算术用于财务计算。

考虑到这一点,分数1 / 3、1 / 3和1/3等于1。但是,当表示为双精度时,即:

.3333 .3333 .3333 = .9999而不是1。

您可能会认为损失千分之一钱是微不足道的,但是当您与他人合作时却不会。

使用System.Decimal。


在DBML XML文件中,您可以将Column元素的Expression属性设置为如下所示:

1
2
 <Column Name="Table1.Amount" DbType="smallint" Type="System.Int32"
         Expression="CAST(Table1.Amount as int)" />


非常确定Money映射到System.Decimal

在这里检查


映射类型属性文件

最新内容

相关内容

热门文章

推荐文章

标签云

猜你喜欢