将C#decimal保存为SQL十进制(18,4)SQL

时间:2014-03-24 17:24:40

标签: c# sql-server-2008 entity-framework-4 ef-code-first

我有一个小问题。我有一个字段,我的客户希望存储最多4个小数位的价格(奇怪的是,至少可以说但仍然)。到目前为止,我只能将2位小数提交回DB。

我正在使用Code First with Entity为我的数据库执行保存和SQL Server 2008 R2。以下是我的每一个。

PurchaseOrder.cs(代码优先)

public virtual decimal ShippingCost { get; set; }

PurchaseOrderService.cs(保存到实体的服务层)

public virtual void UpdatePurchaseOrder(PurchaseOrder purchaseOrder)
{
    if (purchaseOrder == null)
       throw new ArgumentNullException("purchase order");

    _purchaseOrderRepository.Update(purchaseOrder);
}

PurchaseOrder表:

ShippingCost decimal(18, 4) NOT NULL

实施例。运输成本在UI上输入为10.5555。一直到服务层,它保持该值。一旦它发送到实体保存的位置,数据库就不会将这些额外的值保持在10.55以上。

1 个答案:

答案 0 :(得分:1)

实体框架默认值仅使用2位小数。

Decimal precision and scale in EF Code First

显示了如何改变它。