我在我的实体中定义了一些decimal
属性:
public class Entity1
{
public int Id { get; set; }
public decimal Value {get; set;}
}
并且因为我想为我的小数保存最大 4位小数,在我定义的配置文件中:
this.Property(t => t.Value).HasPrecision(18, 4);
所以结果是Value
字段,在Entity1
表中有4个小数位。
如何强制EF
仅保存Value
值中使用的小数位?
例如:
换句话说,我希望EF
保存最终用户在Value
中指定的小数位。
答案 0 :(得分:0)
由于您关注的是以输入方式显示数字而不是因为数学原因而保留精确的精度,因此您有两种选择。
我假设您实际上需要将值作为数据库中的数字,以用于查询或计算目的。否则,您可以将其保存为字符串。
您可以保存第二个值,表示输入值的精度,并使用该值为您的值创建格式字符串:
public decimal Value { get; set; }
public byte ValuePrecision { get; set; }
public string FormatValue()
{
string fmtString = string.Format("{{0:N{0}}}", this.ValuePrecision);
return string.Format(fmtString, this.Value);
}
免责声明:代码是从内存中完成的,尚未经过测试。