将 C# 十进制保存为 SQL 十进制(18,4)SQL [重复]
Posted
技术标签:
【中文标题】将 C# 十进制保存为 SQL 十进制(18,4)SQL [重复]【英文标题】:Saving C# decimal to SQL decimal(18,4) SQL [duplicate] 【发布时间】:2014-05-02 05:18:10 【问题描述】:我有一个小问题。我有一个字段,我的客户希望将价格存储到小数点后 4 位(至少可以说很奇怪,但仍然如此)。到目前为止,我只能将 2 个小数位提交回数据库。
我使用 Code First 和 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】:这里有一个实体框架默认值,它只使用 2 位小数。
Decimal precision and scale in EF Code First
展示了如何改变它。
【讨论】:
以上是关于将 C# 十进制保存为 SQL 十进制(18,4)SQL [重复]的主要内容,如果未能解决你的问题,请参考以下文章
在 C# 中将十六进制值从 SQL Server 转换为日期时间