EntityFramework便士到磅

时间:2015-11-30 18:38:04

标签: c# entity-framework ef-code-first

我正在构建一个WPF应用程序。我使用Code-First创建了我的数据库。

我需要以便士的价格插入物品的价格(例如500),但是当价格显示时,它们应该是磅(5,00)。

我尝试进行"转换"在我的财产的设定者

public decimal Price
{
   get { return price; }
   set { price = value/100 ;}
}

但是,出于某种原因,当我手动删除数据库时,我的ListView中的值会显示某些时间,如0,05,其他时间显示为500,00。这种方法肯定有问题。

如何告诉我的数据库将我的值的最后2个数字视为十进制?

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()来填充视图模型。