This article描述了我的问题。我有几个计算的属性。它们在SQL Server中键入十进制(9,2),在C#类中键入十进制。问题的一个例子是:
每次加载此对象时,都会发出幻像更新。我不想截断我的业务对象中的计算,因为它将它们紧密地耦合到数据库,我不想在其他计算中失去精度。我尝试在映射文件中设置比例和精度或CustomType(“Decimal(9,2)”),但这似乎只影响模式生成。
我唯一合理的选择似乎是创建一个IUserType实现来处理这个问题。有更好的解决方案吗?
答案 0 :(得分:1)
映射到舍入的属性
答案 1 :(得分:0)
在我看来,这更像是一个域问题,而不是NHibernate问题。
您应该将您的十进制字段复制到DTO对象以执行所有计算,然后将其与原始NH域实体一起传回模型/存储库方法。此时,您可以应用舍入来满足您的精度等级,然后将舍入数字与原始NH实体进行比较,并根据需要进行更新和保存。