我正在构建一个WPF应用程序。我使用Code-First创建了我的数据库。
我需要以便士的价格插入物品的价格(例如500),但是当价格显示时,它们应该是磅(5,00)。
我尝试进行"转换"在我的财产的设定者
public decimal Price
{
get { return price; }
set { price = value/100 ;}
}
但是,出于某种原因,当我手动删除数据库时,我的ListView
中的值会显示某些时间,如0,05,其他时间显示为500,00。这种方法肯定有问题。
如何告诉我的数据库将我的值的最后2个数字视为十进制?
答案 0 :(得分:1)
你可能想尝试这样的事情
public class YourClassName {
public decimal Price { get; set; }
[NotMapped]
public decimal Pounds => Price/100;
}
答案 1 :(得分:0)
在实体框架中," getter"返回的值是将存储到数据库的内容。因此,您在此属性上设置的任何内容都将为值/ 100.
您要做的是建立您想要存储货币的标准方式。可能在这种情况下," Pence"是最好的,我会重新说出这个属性,使其自我记录(并删除该部门)。
public decimal PriceInPence
{
get { return price; }
set { price = value;}
}
然后我提供获得磅的方法:
public decimal GetPriceInPounds()
{
return price == 0m ? 0m : price/100m;
}
如果你正在使用你的一个问题评论暗示的MVVM模式,你可以通过调用GetPriceInPounds()来填充视图模型。