EntityFramework便士对英镑
本文关键字:EntityFramework | 更新日期: 2023-09-27 18:25:10
我正在构建一个WPF应用程序。我使用"代码优先"创建了数据库。
我需要插入以便士(例如500)为单位的商品价格,但当价格显示时,应以英镑(5.00)为单位。
我试图在我的属性的设置器中进行"转换"
public decimal Price
{
get { return price; }
set { price = value/100 ;}
}
但是,由于某种原因,当我手动删除数据库时,ListView
中的值有时显示为0,05,有时显示为500,00。这种方法一定有问题。
我如何告诉我的数据库将我的值的最后2个数字视为十进制?
您可能想要尝试类似的东西
public class YourClassName {
public decimal Price { get; set; }
[NotMapped]
public decimal Pounds => Price/100;
}
在实体框架中,"getter"返回的值将存储到数据库中。因此,您在此属性上设置的任何值都将是value/100。
你想做的是建立一种标准的货币存储方式。在这种情况下,"彭斯"可能是最好的,我会重新命名该房产,使其自我记录(并删除分割)。
public decimal PriceInPence
{
get { return price; }
set { price = value;}
}
然后我会提供一种获得英镑的方法:
public decimal GetPriceInPounds()
{
return price == 0m ? 0m : price/100m;
}
如果您使用的是一个问题注释所暗示的MVVM模式,那么您可以通过调用GetPriceInPounds()来填充视图模型。