在实体框架中,如果您将数据库中小数列的精度设置为 10,2,并在 EDMX 中更新它,它会自动将任何小数截断为小数点后 2 位,对吗?
如果我给它一个带有一堆小数位的数字,而不是让它默默地截断它,我宁愿它在我的脸上爆炸,因为这意味着我没有正确验证我的数据。
有没有可以设置的设置?还是我必须附加到 savechanges 方法并进行一些反思?
用一个例子来澄清:
如果我有一个名为 Invoice 的表,其中有一列名为 Amount。在我的数据库中,这是一个小数 (10,2) 列,这反映在 EDMX 中,我的实体说它的精度为 10,比例为 2。
然后在我的代码中,假设用户创建发票并输入 10.23456 作为金额,我忘记为此添加某种客户端验证,因此金额被发送到服务器,然后我的控制器保存发票金额为 10.23456。实体框架会将其截断为 10.23 并完成。
我想要的是:如果我尝试保存一张金额为 10.23456 的发票,EF 会发现我的值比我的实体允许的更精确,并抛出异常。因此,通过这种方式,我无法正确验证输入会立即被发现。